RN Firebase:请求在手机上无密码登录,在PC上打开链接,在手机上登录



我已经成功地在移动设备上设置了一个无密码登录流(使用动态链接(。只要在同一移动设备上打开登录链接,它就可以在iOS和Android上工作。

我想支持用户在移动设备上登录,但在PC上打开链接的情况。这可能吗?

单击电脑上的链接时,我当前看到一个空页面,URL配置在我的ActionCodeSettings:中

const actionCodeSettings: FirebaseAuthTypes.ActionCodeSettings = {
handleCodeInApp: true,
url: 'https://the-url-i-see',
iOS: {
bundleId: '...',
},
android: {
packageName: '...',
installApp: true,
},
}

我这边缺了哪些零件?

更新

我又近了一步:我创建了一个index.html,通过https://the-url-i-see:提供服务

if (firebase.auth().isSignInWithEmailLink(window.location.href)) {
email = window.prompt('Please provide your email for confirmation');
firebase.auth().signInWithEmailLink(email, window.location.href).then(() => {
console.log('Sign-in successful')
}).catch(e => {
console.error('Sign-in failed', e)
})
}

现在有效的方法:

  • 请求在手机上登录会发送电子邮件链接
  • 在PC上打开链接导航到上述index.html
  • 通过提示确认电子邮件后:
    • 登录成功:控制台中的"登录成功">
    • 在Firebase控制台中创建/可见的新用户

还缺少什么:

移动应用程序未收到登录通知(特别是onAuthStateChanged处理程序未启动(。

同时我了解到Firebase Auth不是这样工作的。我的新理解,过于简化:

  • 登录链接就像一张票
  • 这张票可以用来登录一次
  • 登录特定于一个firebase.auth()领域(将触发该领域中的onAuthStateChanged(
  • 在我的情况下:一个auth领域=一个设备

TL;DR:不支持开箱即用的跨设备无密码登录

相关内容

最新更新