gpt4 book ai didi

javascript - 何时为 API 请求刷新过期的 Firebase3(Web) token

转载 作者:搜寻专家 更新时间:2023-11-01 04:35:34 25 4
gpt4 key购买 nike

我目前正在使用 firebase.auth().createUserWithEmailAndPassword(email, password) 对用户进行身份验证,并使用来自 firebase.auth().currentUser.getToken(true ) 用于 API 请求。但是,Firebase 会在 1 小时后使 token 失效。所以我想知道我应该如何刷新 token 。我是否必须使用自己的自定义 token 生成才能正确使用 token 刷新?

我目前正在使用它,虽然我只测试过一次,但它似乎有效。

firebase.auth().onAuthStateChanged(function () {//在这里刷新 token })

我一遍又一遍地阅读文档,但没有看到任何关于刷新 Web 应用程序 token 的提及。我还查看了 firebase 的示例存储库,但没有看到有人使用 onAuthStateChanged 来做这样的事情。所以我想知道这是客户端 token 刷新的正确方法吗?我认为这可能不是最佳方法的原因是因为这可能存在竞争条件。例如,如果 token 过期并且我在刷新 token 之前使用旧 token 发送 API 请求,那么我的 API 请求将因 token 过期而出现身份验证失败。

这与 Firebase DB HTTP API Auth: When and how to refresh JWT token? 中的问题非常相似但在问题是针对使用 Python 且未提及 onAuthStateChanged 的意义上略有不同。

谢谢!

最佳答案

对于那些进入这篇文章寻找答案的人。您可以在所有 API 调用之前获取 token 以获取 token 。

// Make sure you don't pass in true which will always refresh the token
firebase.auth().currentUser.getToken()

Firebase 将在内部确定 token 是否需要刷新或从缓存中获取。如果您注意到 Firebase 在 token 过期之前不会发送任何网络请求。

关于javascript - 何时为 API 请求刷新过期的 Firebase3(Web) token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38965681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com