reactjs – 在React Redux应用程序中使用OAuth2刷新令牌
发布时间:2020-12-15 20:12:11 所属栏目:百科 来源:网络整理
导读:我有一个已实施OAuth2的应用.它工作正常,但我在这里与refresh_tokens混淆.我的应用程序正在使用React Redux组合. 我知道我需要检查我的access_token是否过期,然后使用refresh_token请求新的.好的……但什么时候应该刷新它? 401发生之后或者当需要授权的某些
我有一个已实施OAuth2的应用.它工作正常,但我在这里与refresh_tokens混淆.我的应用程序正在使用React Redux组合.
我知道我需要检查我的access_token是否过期,然后使用refresh_token请求新的.好的……但什么时候应该刷新它? 401发生之后或者当需要授权的某些API请求准备就绪时(发送前)? 我也知道如何使用HTTP拦截器在发送或检测401响应之前获取所有API请求. 解决方法
首次成功通过服务器验证时,我们将{access_token,expires_in,refresh_token}.我们将在
session storage中存储access_token和expires_in,在本地存储中存储refresh_token.
每当获取access_token以获取数据时(你应该使用fill_token填充来增强/包装fetch),你将检查expires_in是否即将到期(不到1分钟,或你感觉舒服),然后我们使用refresh_token请求新的的access_token.当然,我们还必须将新结果更新到存储. 伪代码: function getToken() { const expiresIn = storage.getItem(KEY_EXPIRES_IN); const accessToken = storage.getItem(KEY_ACCESS_TOKEN); if (accessToken && (!expiresIn || moment.unix(Number(expiresIn)).diff(moment(),'minute') > 1)) { return accessToken; } return refreshToken(); } 每次向服务器发出请求时,都会调用上面的函数. P / S:您可能希望将其作为与isomorphic-fetch一起使用的承诺 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – Ruby / Rails:如何以科学计数法显示数字
- c# – 将Null追加到`StringBuilder`
- r – 在单一功能中组合S4和S3方法
- ruby-on-rails – 通过delayed_job使用Gibbon gem时出错?
- vb.net – 实现属性必须具有匹配的’ReadOnly’或’WriteOn
- 如何得到SignedXm验证Xml签名的日志文件
- 正则表达式 – 在Swift中的RegularExpression matchesInStr
- CodeForces - 1173C
- iphone – Snow Leopard中的Xcode 3.2挂起运行单元测试
- c# – 使用AsParallel