无法注销。基于 Auth0 的 React Native Expo 应用程序
Posted
技术标签:
【中文标题】无法注销。基于 Auth0 的 React Native Expo 应用程序【英文标题】:Cannot log out. Auth0 based React Native Expo application 【发布时间】: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 新鲜的眼睛看着这个。如果缺少任何信息,请告诉我,我会将其添加到帖子中。提前致谢。
斯蒂芬·瓦卢瓦
【问题讨论】:
【参考方案1】:您找到解决问题的方法了吗? 我目前处于同样的情况,但我找到了临时解决方案。
WebBrowser.openAuthSessionAsync('https://YOUR_DOMAIN/v2/logoutclient_id=YOUR_CLIENT_ID&returnTo=LOGOUT_URL', 'redirectUrl')
如果您还没有找到解决方案,希望这可以帮助您。
【讨论】:
以上是关于无法注销。基于 Auth0 的 React Native Expo 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Symfony 4.4 Auth0 如何从应用程序中完全注销用户