这是我正在关注的教程,链接
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'之后放置令牌,仍然是相同的结果。
每次登录时,令牌都会更改,令牌会将我引导给用户。
教程和注释代码说如果我使用令牌,它应该用用户和令牌响应。
答案 0 :(得分:0)
我已阅读该教程,至于我的怀疑,您的权限类是(isAuthenticated)。 这意味着您需要登录才能发出该请求。这就是错误信息的原因。
通过删除权限类属性或将其更改为(AllowAny,),您可以毫无问题地执行请求。但逻辑上检索用户需要授权。这就是权限类的原因。
使用令牌,在角度js中,在发布到登录API后,您将收到一个令牌。令牌每次都会有所不同。令牌意味着用于授权的用户的某些身份。登录后,您应该在每个请求的请求标头中保留令牌,直到注销,然后删除令牌。此令牌证明您在服务器中的权限。
您需要继续阅读教程,并编写一些拦截器服务,以便每次都将令牌放入请求标头中。
通过添加
来尝试获取请求'授权':your_token
标题中的。 它应该返回响应200。
我的建议是,您暂时跳过身份验证部分并专注于构建前端,然后在您了解angularjs如何工作并且可以集成到django之后再回来。
答案 1 :(得分:0)