用户调用访问令牌和刷新令牌已过期的API时处理身份验证流程

时间:2020-03-30 22:08:16

标签: javascript reactjs redux axios jwt

我正在使用axios库编写一个React / Redux应用程序,以对服务后端(服务器)进行Ajax调用。我正在使用JWT承载访问令牌来保护API端点。

仅使用长期访问令牌(不包含刷新令牌)时,最终,用户将对服务器进行Ajax调用,服务器将确定JWT访问令牌已过期。到那时,我将不得不显示一个屏幕,要求用户再次进行身份验证。这可能比带有用户名/密码的简单模式对话框要复杂得多。理想情况下,登录屏幕应具有诸如``我忘记了用户名'',``我忘记了密码''之类的链接,这将导致更为复杂的流程(例如发送确认电子邮件等)。在所有这些流程的最后,理想情况下,我们希望透明地重试由于过期的JWT访问令牌而失败的Ajax调用,以便用户可以从离开的地方继续。我不知道如何在Redux中处理所有这些状态转换,而又不会造成某种怪异。

当使用具有短期访问令牌和长期刷新令牌的方法时,最终也会出现相同的可能性。也就是说,在某个时候,访问令牌和刷新令牌都将过期,然后我必须在axios通话期间向用户显示身份验证屏幕。

关于如何处理这种复杂性,是否有一些建议或已建立的模式?或者也许我应该完全避免支持某些复杂的用例(例如,在身份验证屏幕上可能没有“我忘记了密码”按钮)?

0 个答案:

没有答案