OAuth access_token刷新技术

时间:2018-07-05 10:14:24

标签: reactjs oauth redux access-token refresh-token

我正在我的React / Redux(或其他基于Flux的状态管理)应用程序中实现OAuth,而且我正努力寻找各种access_token扩展方法的“优缺点”的良好信息。


1)拦截401响应

一种选择是拦截API请求(例如,使用“ fetch-intercept”包)并检测任何401 HTTP代码响应。

在401的情况下,我们构建逻辑以检索新的access_token,然后重播先前的请求。

  • 可以通过在401处理程序中调度INVALID_TOKEN动作并通过中间件捕获这些动作来处理重播,然后中间件将在INVALID_TOKEN动作发生之前重播该动作。

优点

  • 可以看到与身份验证失败相关的操作的全部可见性(因此,我们可以使用时间旅行调试来重放与身份验证相关的错误)

2)在API调用时检测到过时的access_token

另一种方法是在发送任何请求时,对我们的access_token进行解码,并检查是否需要尽快刷新它(如果需要的话)。

再次使用某种中间件将是此解决方案的最佳选择。我们可以截获所有动作,并且在分派它之前首先检查我们是否有一个有效的access_token。

优点

  • 不需要仅仅为了接收401响应而打服务器,而是可以抢占它

缺点

  • 更复杂的逻辑使我们在刷新令牌时将请求排队,然后在正确刷新后最终重播它们

3)轮询方法

登录后,查看令牌到期前需要多长时间,并设置超时时间以刷新access_token之前

优点

  • 最简单的选项(尤其是在缺少现有请求逻辑的情况下改装应用程序时)

对于每种方法的任何其他选项或优点与缺点,我们将不胜感激,也许我可以在这里为那些入门的人创建详尽的清单

0 个答案:

没有答案