Expo AuthSession 新窗口未在 Web 上重定向
Posted
技术标签:
【中文标题】Expo AuthSession 新窗口未在 Web 上重定向【英文标题】:Expo AuthSession new window not redirecting on Web 【发布时间】:2021-10-24 05:09:44 【问题描述】:我们正在使用 AuthSession.startAsync 在我们的应用程序中启动身份验证过程,该过程在 ios 和 android 上运行良好。然而,当我们在网络浏览器上运行它时,我们的登录过程并没有重定向到正确的 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