使用如下所示的电子邮件和密码创建用户后,
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
firebase这样返回我创建的用户对象:
{
"uid": "huuX6OwdbfNvthORiDzNV6seo3D3",
"displayName": null,
"photoURL": null,
"email": "qqq2@yahoo.com",
"emailVerified": false,
"phoneNumber": null,
"isAnonymous": false,
"providerData": [
{
"uid": "qqq2@yahoo.com",
"displayName": null,
"photoURL": null,
"email": "qqq2@yahoo.com",
"phoneNumber": null,
"providerId": "password"
}
],
"apiKey": "qqqwwweee",
"appName": "[DEFAULT]",
"authDomain": null,
"stsTokenManager": {
"apiKey": "qqqwwweee",
"refreshToken": "AGdpqewb4UYbr5Uo5",
"accessToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6ImI4OWY",
"expirationTime": 1532487232918
},
"redirectEventId": null,
"lastLoginAt": "1532483591000",
"createdAt": "1532482346000"
}
然后,每次我使用signInWithEmailAndPassword
方法时,它都会生成新的accessToken
和refreshToken
。
但是我想使用accessToken
,直到它对已创建的用户到期为止,我可以使用哪种方法来验证此令牌的用户。因此,我不需要每次都进行用户登录。
为此提供了方法吗?
答案 0 :(得分:0)
您正在访问用户的内部。这些内容可能会发生变化。您应该依赖正式记录的API。 accessToken
基本上是Firebase ID令牌的内部名称。正确的方法是调用user.getIdToken()
。如果未过期,这将返回缓存的令牌,或者为您刷新后台令牌。