我正试图在我的Flutter项目中启用多因素身份验证,该项目仅针对web平台。据我所知,FlutterFire SDK的最新版本不支持MFA。这就是为什么我尝试使用谷歌身份平台API将该功能添加到我的应用程序中。
我已经可以从REST API获取令牌,但当将其传递给signInWithCustomToken((方法时,我总是得到以下错误:"自定义令牌格式不正确…">
以下是我尝试登录用户的方式:
- 使用http包发布到https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword
- 通过过帐到启动MFAhttps://identitytoolkit.googleapis.com/v2/accounts/mfaSignIn:start
- 从发送到用户电话号码的信息中获取短信验证码
- 张贴到https://cloud.google.com/identity-platform/docs/reference/rest/v2/accounts.mfaSignIn/finalize使用SMS验证码
- 从响应主体获取
idToken
- 将获取的
idToken
传递给FirebaseAuth.signInWithCustomToken()
方法
查看这个Firebase文档,我从GIP REST API获得的令牌的格式似乎有所不同。
我能做些什么让Firebase SDK接受我从Google Identity Platform REST API获得的令牌吗?
FirebasesignInWithCustomToken()
方法采用由Admin SDK生成的令牌,而不是Google Identity令牌。
GCIP(Google Cloud Identity Platform(返回的令牌与Firebase使用的Auth ID令牌相同。在调用finalizeMfa
之后,您基本上已经登录到Firebase,如果您开始使用SDK,您将看到它在没有任何转换的情况下可以工作。