无法注销。基于 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: nulltype: 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 如何从应用程序中完全注销用户

成功 Auth0 登录尝试后故障重定向

React Hook SetState 导致无限循环

Auth0 不会在电子邮件/密码的页面刷新时保持登录

执行 Auth0/Google 联合 SSO 注销时如何将用户重定向回我的应用程序?

使用 Auth0 单点登出所有应用程序