在我的应用程序中,我尝试使用谷歌重定向登录。我的重定向登录可以在我的 chrome 浏览器上使用,但我的 safari 浏览器无法使用。
这是我在 chrome 上运行的一些代码
try {
const result = await getRedirectResult(auth);
} catch (err) {
if (err.code === 'auth/credential-already-in-use') {
const cred = GoogleAuthProvider.credentialFromError(err);
signInWithCredential(auth, cred);
}
}
在上面的代码片段中,我看到
result
将包含身份验证凭证对象。在 safari 中,身份验证凭据是 null
。我已经检查了这里的文档https://firebase.google.com/docs/auth/web/redirect-best-practices#signinwithpopup但是我正在使用本地主机并且它失败了。
我在这个文档中发现https://firebase.google.com/docs/reference/js/v8/firebase.auth.Auth#getredirectresult
If no redirect operation was called, returns null.
所以在这种情况下,我的猜测是重定向操作是没有在我的浏览器上调用。给什么?
也许相关,我仍在学习 React,并发现这在开发过程中很有帮助。我还开始在重定向之前主动将状态保存到本地存储,帮助我知道是否应该等待身份验证。