【发布时间】:2021-10-22 21:09:30
【问题描述】:
我正在尝试在 React Native Expo 应用程序中使用 Auth0 进行身份验证,但是我似乎无法注销。这意味着我也无法切换登录帐户。我第一次在新设备上启动应用程序时就可以登录。初次登录后,静默身份验证启动,由于我无法退出,所以我保持登录状态。
在注销时,我正在点击 Auth0 注销网址:
const logout = async () => {
try {
await axios.get(`${domainUrl}/v2/logout?client_id=${clientId}`)
} catch (err) {
console.error(err)
}
}
....
<Button
title='Sign out'
onPress={logout}
/>
在我的 Auth0 日志中,Auth0 明确指出:User successfully logged out
我正在使用AuthSessionNew.useAuthRequest() 处理登录:
const [request, response, promptAsync] = AuthSessionNew.useAuthRequest(
{
clientId,
responseType: 'id_token',
scopes: ['app', 'name'],
extraParams: {
nonce: 'nonce',
},
redirectUri,
},
discovery,
)
....
<Button
disabled={!request}
title='Sign in'
onPress={() => promptAsync({ useProxy })}
/>
与注销一样,每当我调用登录按钮时,我都会在 Auth0 日志中成功登录:Successful login
response 以 null 开始,直到第一次登录。登录后,即使应用程序关闭与否,它仍然存在。我想这是一种想要的行为,因为您可以看到用户是否以这种方式登录到应用程序。但是,我想一旦我调用注销路由,它应该被清除。
有人知道这里发生了什么吗?为什么我无法注销,即使 Auth0 日志另有说明?
https://auth0.com/docs/api/authentication?http#logout 的文档
由于这是一个移动应用程序,我在注销后没有重定向 URL。
我也试过federated,没有区别。
响应对象如下所示:
Object {
"authentication": null,
"error": null,
"errorCode": null,
"params": Object {
"exp://192.168.10.187:19000/--/expo-auth-session": "",
"id_token": "JWT-TOKEN",
"state": "BQK8UJc9sK",
},
"type": "success",
"url": "exp://192.168.10.187:19000/--/expo-auth-session#id_token=JWT-TOKEN",
}
不知道为什么上面写着authentication: null 和type: success
我真的很感激 som 新鲜的眼睛看着这个。如果缺少任何信息,请告诉我,我会将其添加到帖子中。提前致谢。
斯蒂芬·瓦卢瓦
【问题讨论】:
标签: react-native expo auth0