何时在 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小组件:过滤-筛选-排序-分页