【问题标题】:Is this the correct gist of how to use Django Simple JWT?这是如何使用 Django Simple JWT 的正确要点吗?
【发布时间】:2021-07-30 22:16:28
【问题描述】:

客户端将是 Android

  • 使用用户名和密码通过 POST 到 /thetokenurl 获取访问和刷新令牌,在本地存储中存储访问和刷新令牌

  • 使用身份验证标头中的令牌对受保护端点进行任何 API 调用

  • 每当前端需要 API 调用时,您总是需要执行 if/else 工作以检查响应是否说明令牌已过期,如果已过期,则使用本地存储中的刷新令牌获取新的访问令牌,然后将新的访问令牌存储在本地存储中,然后对您想要的任何内容进行 API 调用。

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    是的,这是一种方法,例如在发出请求(如果设置了时间戳)或检查响应之前使用客户端/中间件上的拦截器来检查过期。然后,如果需要,您将刷新。请记住,您可能还需要合并一个队列,以确保失败的请求仍然被用户视为成功(例如,成功刷新的过期请求)。

    【讨论】:

    • 谢谢。你提到的最后一部分。您是说如果客户端令牌已过期然后刷新,我应该通知用户吗?
    • 不,理想情况下您希望对用户隐藏它,这就是为什么您要实现一个队列,如果 cookie 刷新成功,则可以在其中重试失败的请求。除非您需要将他们注销,否则您会通知他们并说“嘿,出于安全原因,我们已将您注销”。尽管这通常仅在用户空闲且应用程序具有安全要求的情况下才会出现。这是用户体验和安全性之间的平衡。有很多关于如何处理 JWT 刷新的文章,所以我建议阅读一下,这是一个常见的设计挑战。
    猜你喜欢
    • 2016-03-03
    • 2020-01-20
    • 2010-09-21
    • 1970-01-01
    • 2011-09-12
    • 2018-11-06
    • 2018-08-13
    • 2015-12-19
    • 1970-01-01
    相关资源
    最近更新 更多