我正在开发chrome扩展(提供主要功能)和补充网站(主要是配置文件和计费相关功能),这两个网站都有firebase后端支持。
我想知道是否有可能实现以下场景:
-
用户使用firebase身份验证(使用firebaseUI库)使用扩展登录
-
我存储了一个令牌,可以用来重新验证该用户(是否有这样的令牌?)
-
当用户打开网站时,我会使用令牌自动登录该用户。
虽然分机和网站都有自己的登录/注册表单,但我想知道是否可以在分机中登录用户,并以某种方式自动在网站上登录同一用户,这样他们就不必输入两次凭据?
到目前为止,我希望我可以使用以下内容:
firebase.auth().currentUser.getIdToken(true).then(function(idToken) {
console.log("idToken = ", idToken)
})
然后使用它
idToken
这样,因为如果我理解正确,这是AWT:
firebase.auth().signInWithCustomToken(idToken).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
console.log("signInWithCustomToken: error = ", error)
})
但它给出了以下错误:
code: "auth/invalid-custom-token"
message: "The custom token format is incorrect. Please check the documentation."
我可以在上解析令牌
https://jwt.io/
显示所有用户信息,但最后显示“无效签名”
所以我猜这个令牌只能用于检查身份验证(比如
admin.auth().verifyIdToken(idToken)
)但不要登录用户。我说得对吗?
我知道我可以创建一个自定义令牌,但是否有任何简单的方法来解决这个问题,并使用firebase funstionality从一个地方登录用户?(当然不存储用户名/密码)