Firebase:我啥时候应该使用 refreshToken?

Posted

技术标签:

【中文标题】Firebase:我啥时候应该使用 refreshToken?【英文标题】:Firebase: When should I use refreshToken?Firebase:我什么时候应该使用 refreshToken? 【发布时间】:2018-07-13 22:04:21 【问题描述】:

根据Firebase documentation,刷新令牌仅适用于需要显式刷新令牌的高级场景

在哪些情况下我应该使用该令牌,使用它有什么好处?

private afAuth: AngularFireAuth

this.afAuth.auth.currentUser.getIdToken()
.then(idToken => // Gives me a different token from key name called pa);

另外,我不确定 refreshToken 和从getIdToken() 返回的令牌之间的区别。目前,我将后者用于 HTTP 请求。

注意: getIdToken 将用于向 Firebase 服务识别用户的 JWT 令牌返回

【问题讨论】:

【参考方案1】:

刷新令牌:

用户帐户的刷新令牌。仅用于需要显式刷新令牌的高级场景。

GetIdToken:

将用于向 Firebase 服务识别用户的 JWT 令牌返回。 如果当前令牌尚未过期,则返回当前令牌,否则将刷新令牌并返回一个新令牌。

refreshtoken 用于以下情况:

当前用户的访问令牌被刷新。这种情况可能发生在以下情况:

    访问令牌过期:这是一种常见情况。刷新令牌用于获取一组新的有效令牌。

    用户更改密码:Firebase 发出新的访问和刷新令牌,并使旧令牌过期。出于安全原因,这会自动使用户的令牌过期和/或在每台设备上注销用户。

    用户重新认证:某些操作要求用户的凭据是最近颁发的;此类操作包括删除帐户、设置主电子邮件地址和更改密码。从用户那里获取新凭据,然后将新凭据传递给 User 对象的 reauthenticate 方法,而不是注销用户然后再次登录用户。

更多信息在这里:https://firebase.google.com/docs/auth/users

【讨论】:

感谢您的回复。 refreshTokenonTokenRefresh() 之间有什么关系?我不明白。我相信getToken() 已被弃用。 我已经更新了答案,@JeffMinsungKim 另一个完全错误,我以为你在谈论另一个令牌。 谢谢,彼得。我知道你在谈论不同的东西!现在一切都说得通了 :) 所以我真的不必在我的代码中使用 refreshToken 吗? firebase 会处理令牌吗?还是我仍然错过了什么? 是的,根据我现在搜索的内容,getIdToken() 它将为您提供刷新的令牌,因此无需使用refreshToken (***.com/questions/38233687/…) 是的,根据此链接(firebase.google.com/docs/auth/users ) 似乎 firebase 会处理令牌 太棒了!再次感谢彼得。帮了我很多:)

以上是关于Firebase:我啥时候应该使用 refreshToken?的主要内容,如果未能解决你的问题,请参考以下文章

我啥时候应该使用 FutureBuilder?

我啥时候应该使用 QThread::HighestPriority

我啥时候应该使用助手? [关闭]

我啥时候应该使用“while 循环”?

我啥时候应该在 C 中使用 malloc,啥时候不应该?

我啥时候应该在 C 中使用 malloc,啥时候不应该?