问题描述
我在这里还是Expo / RN的新手。我正在尝试使用Azure广告在我的应用中实现一些基本身份验证,然后进行Graph API调用。现在,我有一个登录按钮,显示在WelcomeScreen上,但是当用户按下该按钮并登录(通过AzureAd提示符)时,它将带他们回到Welcomescreen,直到再次登录。登录后,其“赞”状态不会被更新或重新评估。我是否缺少使用alertAsync的明显内容?
App.js
export default function App() {
const [user,setUser] = useState(null);
WebBrowser.maybeCompleteAuthSession();
const discovery = useAutoDiscovery(
"placeholder"
);
// Request
const [request,response,promptAsync] = useAuthRequest(
{
clientId: "placeholder",scopes: ["openid","profile","email","offline_access"],// For usage in managed apps using the proxy
redirectUri: makeRedirectUri({
// For usage in bare and standalone
native: "placeholder",}),responseType: ResponseType.Token,},discovery
);
const handleLogin = async () => {
await promptAsync();
if (response && response.type === "success") {
var userDecoded = jwtDecode(response.params.access_token);
setUser({
accessToken: response.params.access_token,userDetails: userDecoded,});
}
};
return (
<AuthContext.Provider value={{ user,handleLogin }}>
<NavigationContainer theme={navigationTheme}>
{user ? <AppNavigator /> : <AuthNavigator />}
</NavigationContainer>
</AuthContext.Provider>
);
}
(登录按钮在哪里)
WelcomeScreen.js
function WelcomeScreen({ navigation }) {
const authContext = useContext(AuthContext);
return (
<ImageBackground
style={styles.background}
source={require("../assets/background.jpg")}
blurRadius={4}
>
<View style={styles.logoContainer}>
<Image source={require("../assets/lo.png")} />
<Text style={styles.titleText}>ITS Inventory</Text>
</View>
<View style={styles.buttonsContainer}>
<AppButton
title={"Login Via Azure"}
style={styles.loginButton}
onPress={() => authContext.handleLogin()}
></AppButton>
</View>
</ImageBackground>
);
}
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)