DRF JSON令牌认证

时间:2016-09-03 12:08:49

标签: authentication django-rest-framework token jwt django-rest-auth

我必须使用RESTAPI实现以下功能:

  • 注册用户

  • 授权用户并获取令牌

  • 通过令牌获取用户数据

  • 通过令牌(标题,正文)创建用户帖子

  • 通过令牌获取用户的帖子

  • 通过令牌获取所有帖子

  • 必须自定义用户个人资料 - 主要字段为电子邮件/密码

models.py:

http://pastebin.com/8V7CzrVi

serializers.py:

http://pastebin.com/W7Dn8Msn

views.py:

http://pastebin.com/L5ijkd5F

urls.py:

urlpatterns = [
    url(r'^api/', include('app.urls')),
]

app.urls:

from .views import Register, UserList, UserDetail, PostList, PostDetail
from rest_framework_jwt.views import obtain_jwt_token

urlpatterns = [
    url(r'^users/$', UserList.as_view(), name='user-list'),
    url(r'^users/(?P<pk>[0-9]+)/$', UserDetail.as_view(), name='user-detail'),
    url(r'^posts/$', PostList.as_view(), name='post-list'),
    url(r'^posts/(?P<pk>[0-9]+)/$', PostDetail.as_view(), name='post-detail'),
    url(r'^login/', obtain_jwt_token),
    url(r'^register/$', Register.as_view()),

]

第一个问题 - 请查看代码并告诉我,我是否正确实现? (感谢很多任何更正,提示和解释)

第二个 - 如何在没有任何客户代码的情况下执行创建帖子或查看帖子列表?

我的意思是:

  • 我将在api / register进入可浏览的API,输入电子邮件和密码,点击帖子并获取用户的对象

  • 然后我将进入api / login,输入刚刚注册的用户的电子邮件和密码,点击帖子并使用令牌获取对象 - {'token':'sometoken'}

  • 然后我尝试使用httpie创建帖子或获取帖子列表。在控制台中输入 -

http POST 127.0.0.1:8000/api/posts“授权:Token sometoken”

http GET 127.0.0.1:8000/api/posts“授权:Token sometoken”

并获得:

HTTP/1.0 301 MOVED PERMANENTLY
Content-Type: text/html; charset=utf-8
Date: Sat, 03 Sep 2016 10:22:33 GMT
Location: http://127.0.0.1:8000/api/posts/
Server: WSGIServer/0.1 Python/2.7.11
X-Frame-Options: SAMEORIGIN

我不明白如何使用令牌检查每个端点。

谢谢!

0 个答案:

没有答案