【问题标题】:auth/user-token-expired error in custom firebase authentication自定义 Firebase 身份验证中的 auth/user-token-expired 错误
【发布时间】:2021-02-11 11:15:19
【问题描述】:
我目前正在使用 Firebase 自定义身份验证,最近我开始注意到收到了 auth/user-token-expired 错误消息
用户的凭据不再有效。用户必须重新登录。
在客户端上,无需对用户帐户进行任何重大更改。我可以做些什么来找出这个问题的原因以及纠正它的可能方法,以便在用户使用应用程序时不会在某些尴尬的状态下发生此类注销?
【问题讨论】:
标签:
javascript
firebase
firebase-authentication
【解决方案1】:
客户端代码可以调用User.getIdToken(forceRefresh)来强制刷新令牌。
getIdToken ( forceRefresh ? : boolean ) : Promise < string >
将用于向 Firebase 服务识别用户的 JSON Web 令牌 (JWT) 返回。
如果尚未过期,则返回当前令牌。否则,这将刷新令牌并返回一个新令牌。
参数
- 可选的forceRefresh:布尔值
无论令牌是否过期,都强制刷新。
当用户或设备成功登录后,Firebase 会创建一个相应的 ID 令牌,以唯一标识他们并授予他们访问多个资源的权限,例如 Firebase 实时数据库和云存储。您可以重复使用该 ID 令牌来识别自定义后端服务器上的用户或设备。要从客户端检索 ID 令牌,请确保用户已登录,然后从已登录用户处获取 ID 令牌:
firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idToken) {
// Send token to your backend via HTTPS
// ...
}).catch(function(error) {
// Handle error
});