2017-05-14 65 views
0

这是教程我是下面的链接令牌应该每次都改变吗?

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

我到最后,有此大胆 “检索和更新与邮差用户”

部分当我使用Postman并使用正确的电子邮件和密码对url 127.0.0.1:8000/api/users/login 执行POST请求时,每次登录时都会得到不同的令牌,这是正常的吗?如果是的话如何以下工作....

的问题是根据教程当我做一个GET的URL 127.0.0.1:8000/api/user

我得到的回应

{ “user”:{ “detail”:“未提供身份验证凭据”。 } }

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

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

每次登录时令牌都会发生变化,令牌将如何引导用户。

本教程和评论代码说,如果我使用令牌,它应该与用户和令牌进行响应。

+0

哪个框架您使用的是你的前端?令牌认证用于跨平台认证目的。如果您使用的是django模板,那么会话或基本身份验证就足够了。 – zaidfazil

+0

本教程将使用角度js作为前端,但我还没有到达这一点 –

+0

您可以发布视图吗? – zaidfazil

回答

0

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

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

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

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

加入

'授权' 尝试GET请求:在头your_token

。 它应该返回响应200.

我的建议是,你现在跳过验证部分,专注于构建一个前端,然后回来后,你有一个想法如何angularjs的工作原理,可以集成到Django。

+0

谢谢你,我已经发现了什么是错误的,我的设置中的秘密密钥在某种程度上是不完整的,我通过在那里复制来修复它,会采取你的建议,并做前端,以便我可以直观地看到一切。 –

0

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

相关问题