React Firebase 防止 axios 中的令牌过期
Posted
技术标签:
【中文标题】React Firebase 防止 axios 中的令牌过期【英文标题】:React Firebase prevent token expiration in axios 【发布时间】:2021-05-01 13:26:08 【问题描述】:我有一个使用 Firebase 身份验证和 Express 后端的 React 应用。
由于idToken的持续时间是1小时,如果idToken过期了,我想刷新一下。
我了解到firebase.auth().currentUser.getIdToken()
会给我当前的 idToken。但是,如果过期了,就会生成一个新的。
所以,我在 Axios 中添加了一个拦截器:
axios.interceptors.request.use(async (config) =>
await firebase.auth().currentUser.getIdToken();
return config;
);
但是,1 小时后我仍然收到错误消息。我错过了什么?
【问题讨论】:
嘿,责任。您对此有进一步了解吗?我试图在下面提供答案。你检查了吗,它有意义吗? 【参考方案1】:大多数 Firebase SDK 从当前用户那里获取 ID 令牌,并在他们调用服务器时将其传递,然后服务器使用它来处理他们的(相对短暂的)请求。所以我通常会推荐这样的方法。
但是,如果您想检测何时生成了新的 ID 令牌,以便您可以以不同的方式将其传递给您的后端代码,请使用 onIdTokenChanged
listener。每当客户端从服务器获取新的 ID 令牌时,都会调用它。
【讨论】:
以上是关于React Firebase 防止 axios 中的令牌过期的主要内容,如果未能解决你的问题,请参考以下文章
使用 React 和 Axios 更新 Firebase 中的数据
如何在反应项目和 Firebase 中使用带有 axios 的删除请求?
使用 Axios 和 Firebase 时出现 401 未经授权的错误