Token应该每次都改变吗?

时间:2017-05-14 01:03:47

标签: python json django jwt postman

这是我正在关注的教程,链接

https://thinkster.io/tutorials/django-json-api/authentication

我一直到最后,这个部分以粗体显示 "使用Postman"

检索和更新用户

当我使用Postman并在网址127.0.0.1:8000/api/users/login上发布POST请求时 使用正确的电子邮件和密码,每次登录时都会收到不同的令牌,这是正常的吗?如果是这样,以下如何工作......

当我在网址上进行GET时问题是根据教程 127.0.0.1:8000/api/user

我收到回复

{   "用户":{     "详细信息":"未提供身份验证凭据。"   } }

但根据教程我应该获得用户的用户名。我发送的请求错了吗?

代码中的注释告诉我使用PostMan在请求的标头中使用令牌,所以我这样做了,结果仍然相同。我甚至试图在用户/?token =' tokengoeshere'之后放置令牌,仍然是相同的结果。

每次登录时,令牌都会更改,令牌会将我引导给用户。

教程和注释代码说如果我使用令牌,它应该用用户和令牌响应。

2 个答案:

答案 0 :(得分:0)

我已阅读该教程,至于我的怀疑,您的权限类是(isAuthenticated)。 这意味着您需要登录才能发出该请求。这就是错误信息的原因。

通过删除权限类属性或将其更改为(AllowAny,),您可以毫无问题地执行请求。但逻辑上检索用户需要授权。这就是权限类的原因。

使用令牌,在角度js中,在发布到登录API后,您将收到一个令牌。令牌每次都会有所不同。令牌意味着用于授权的用户的某些身份。登录后,您应该在每个请求的请求标头中保留令牌,直到注销,然后删除令牌。此令牌证明您在服务器中的权限。

您需要继续阅读教程,并编写一些拦截器服务,以便每次都将令牌放入请求标头中。

通过添加

来尝试获取请求

'授权':your_token

标题中的

。 它应该返回响应200。

我的建议是,您暂时跳过身份验证部分并专注于构建前端,然后在您了解angularjs如何工作并且可以集成到django之后再回来。

答案 1 :(得分:0)

我有同样的问题,我这样做了: Enter Authorization Token *token in here*