首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当用户登录时使用dj-rest-auth获取auth令牌。

当用户登录时使用dj-rest-auth获取auth令牌。
EN

Stack Overflow用户
提问于 2021-06-18 07:49:23
回答 2查看 1.3K关注 0票数 0

以前我使用的是django-rest-auth包,当响应response.data.key中的用户log in和这个auth tokenkeyauthentication auth的形式调用api时,我正在获取response.data.key

django-rest-auth前情提要

代码语言:javascript
复制
"/rest-auth/login/"

正在以auth token的形式获取auth token,并且我已经将其存储在cookie中供以后使用。

代码语言:javascript
复制
.get("/rest-auth/user/", {
     headers: {
       "Content-Type": "application/json",
       Authorization: "Token " + response.data.key + "",
       },
  })

它是用来获取用户信息的,也是在其他api调用中使用时通过将其设置为

代码语言:javascript
复制
Authorization: "Token " + response.data.key + ""

但是现在,我使用的是dj-rest-auth包而不是django-rest-auth,并将我的urls移到

代码语言:javascript
复制
/dj-rest-auth/login

我没有得到任何keyauth token,我可以使用authorization在头。

代码语言:javascript
复制
.get("/dj-rest-auth/user/", {
     headers: {
       "Content-Type": "application/json",
       Authorization: "Token " + response.data.? + "",
       },
  })

它不起作用了,因为现在我得到了access_tokenrefresh_tokenuser info。我尝试在头文件中使用access_tokenrefresh_token作为authorization,但是它不起作用,因为当用户log in时,没有得到keyauth token的响应

注意:django-rest-auth不再被维护,dj-rest-auth是从上一个分叉而来的,并且具有更多的功能(这就是我切换的原因)。

如何通过使用auth token包获得dj-rest-authkey,以便在API调用授权的header中使用它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-18 08:27:24

检查您的没有在您的设置中有一个REST_USE_JWT = True。该设置将启用JWT身份验证方案,而不是基于(默认)令牌的认证方案。

票数 1
EN

Stack Overflow用户

发布于 2022-07-04 16:05:55

在django-rest-auth中,您从get请求中获得密钥,但是根据django的文档,当您向/dj-rest-auth/login/发出post请求时,您会得到令牌密钥作为响应。

当您向/dj-rest-auth/login/发出POST请求时,您可以访问response.data上的密钥。但是现在您需要存储它,以便在get请求中使用它。

我推荐检查这个问题的答案来了解有关存储令牌的更多信息。如何选择这样做将取决于如何构建应用程序的前端,因为javascript需要访问令牌键。

我知道我回答这个问题迟到了,但希望我能帮助其他人发现这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68031337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档