何时在 DRF 中的 jwt 中调用 gettoken、刷新令牌和验证令牌?

Posted

技术标签:

【中文标题】何时在 DRF 中的 jwt 中调用 gettoken、刷新令牌和验证令牌?【英文标题】:When to call gettoken, refresh token and verify token by user in jwt in DRF? 【发布时间】:2021-06-27 04:00:23 【问题描述】:

我一直在 Django rest 框架中为我的项目使用内置的 token authentication。但现在我正在转向 simple jwt。但我对一件事感到困惑。

在 Token Authentication 用户中如果从前端登录会返回一个令牌,但是在 jwt 文档中我看到了如下三个请求:

urlpatterns = [    
url(r'^auth-jwt/', obtain_jwt_token),     
url(r'^auth-jwt-refresh/', refresh_jwt_token),     
url(r'^auth-jwt-verify/', verify_jwt_token),
 ]

我不太明白这些要求。作为普通用户,当用户访问一个站点时,他不要求获取令牌、刷新令牌和验证令牌,他只需登录并使用该站点的功能。那么,我想问这些请求是什么时候提出的?

希望我已经解释清楚了。

【问题讨论】:

【参考方案1】:

JWT 认证的一般流程是这样的:

    客户端将发送一个POST 请求,其中包含需要验证的身份验证凭据。如果凭据有效,则服务器需要返回 JWT 令牌和刷新令牌。此过程由url(r'^auth-jwt/', obtain_jwt_token) URL 处理。

    身份验证后返回的令牌是短暂的令牌,要继续用户会话,客户端需要使用刷新令牌获取新令牌。 这是由url(r'^auth-jwt-refresh/', refresh_jwt_token) URL 完成的。

并不总是需要第三个 URL。如果您的应用程序需要它,您可以使用它来验证您的 JWT 令牌。

【讨论】:

在令牌认证中,我有这个用户登录 api 是 127.0.0.0:8000/api/login,用户可以从那里登录,用户永远不必调用 url(r'^auth- jwt/', gain_jwt_token),所以我很困惑。这是从前端自动调用刷新令牌吗?? 您应该花一些时间了解 JWT 身份验证的工作原理,这将有助于消除您的疑虑。这里有一篇好文章remoteinning.com/blog/…

以上是关于何时在 DRF 中的 jwt 中调用 gettoken、刷新令牌和验证令牌?的主要内容,如果未能解决你的问题,请参考以下文章

django drf框架中的user验证以及JWT拓展的介绍

drf_jwt手动签发与校验-drf小组件:过滤-筛选-排序-分页

drf中的jwt使用与手动签发token校验用户

0019 基于DRF框架开发(JWT token认证)

在 Django/DRF 中使用 JWT 身份验证并将 JWT 存储在 HttpOnly Cookie 中

DRF -- 频率组件 JWT使用