Expo AuthSession 新窗口未在 Web 上重定向

Posted

技术标签:

【中文标题】Expo AuthSession 新窗口未在 Web 上重定向【英文标题】:Expo AuthSession new window not redirecting on Web 【发布时间】:2021-10-24 05:09:44 【问题描述】:

我们正在使用 AuthSession.startAsync 在我们的应用程序中启动身份验证过程,该过程在 iosandroid 上运行良好。然而,当我们在网络浏览器上运行它时,我们的登录过程并没有重定向到正确的 Auth0 登录页面,而是打开了应用程序的另一个窗口。

导致问题的代码:

    const result = await AuthSession.startAsync(
      authUrl,
      returnUrl: Platform.OS === 'web' ? getRedirectUri() : undefined,
    );

现在 authUrl 是我们需要访问 auth0 的正确 url,但是它不会像在移动设备上那样打开这个 url 以进行登录。之前有人在 Expo 网络应用程序上遇到过这个 AuthSession 问题吗?

提前致谢!

【问题讨论】:

您的getRedirectUri() 函数是否将useProxy 属性设置为true?尝试将其设置为false 【参考方案1】:

您需要致电WebBrowser.maybeCompleteAuthSession();

AuthSession Expo Docs 中有关于此案例的警告:

? In order to close the popup window on web, you 
need to invoke WebBrowser.maybeCompleteAuthSession().
See the Identity example for more info.

他们谈论的例子可以在这里找到:

https://docs.expo.dev/guides/authentication/#identityserver-4

【讨论】:

以上是关于Expo AuthSession 新窗口未在 Web 上重定向的主要内容,如果未能解决你的问题,请参考以下文章

React Native “Expo SDK 需要 Expo 才能运行......此代码未在 Expo 上运行。”

Expo SDK 需要 Expo 才能运行。似乎本机 Expo 模块不可用,并且此代码未在 Expo 上运行。我想生成apk

expo-location 在 ios 中不起作用,并且未在应用设置中显示位置权限

带有按钮回调的新窗口未在 fltk 中打开

世博模拟器未在设备上打开

如何让 NetInfo 与 expo-web 一起工作?