客户端强制刷新Firebase ID令牌后,原有令牌是否会失效?
关于Firebase ID令牌强制刷新后的有效性问题
我尝试通过GET请求从服务器获取用户数据。首先在客户端获取Firebase ID令牌:
const token = await auth.currentUser.getIdToken(true /* forces refresh */);
随后将其通过授权头传递到服务器进行验证:
const user = await getAuth().verifyIdToken(token);
当令牌在服务器验证通过并向客户端返回响应后,该令牌会因强制刷新参数而失效吗?还是下次API调用会生成新令牌,但新旧令牌均保持有效?
回答:
- 调用
getIdToken(true)强制刷新时,客户端会生成一个新的ID令牌,但之前的旧令牌不会立即失效,它会持续有效到自身的过期时间(Firebase ID令牌默认有效期为1小时)。 - 服务器端的
verifyIdToken(token)只是验证令牌的合法性(包括签名、过期时间、受众匹配等),这个验证操作不会触发令牌失效,你用强制刷新得到的这个令牌,在过期前都可以正常使用。 - 下次API调用如果再次调用
getIdToken(true),会生成另一个新令牌,此时之前的所有旧令牌(包括这次强制刷新得到的)依然会在各自的有效期内保持有效,直到自然过期。
内容的提问来源于stack exchange,提问作者isoaxe
相关产品推荐
相关产品推荐

