我正在开发一个项目来为移动设备启用django rest框架身份验证 . 我正在使用默认令牌身份验证从发送用户名和密码的发布请求中获取用户令牌 .
curl --data "username=username&password=password" http://127.0.0.1:8000/api/api-token-auth/
(api / api-token-auth /是使用obtain_auth_token视图配置的url)
urlpatterns = [
url(r'^api/api-token-auth/', obtain_auth_token),
url(r'^', include(router.urls)),
]
并且响应是用户令牌 .
{"token":"c8a8777aca969ea3a164967ec3bb341a3495d234"}
我需要在帖子上使用电子邮件密码而不是用户名密码来获取用户令牌auth,或者两者都是 . 我正在阅读自定义身份验证的文档http://www.django-rest-framework.org/api-guide/authentication/#custom-authentication ...但是真的,isn 't very clear to me. It'对我很有帮助...谢谢:) .
3 回答
好的,我找到了使用电子邮件或用户名获取身份验证令牌的方法......这是序列化程序:
在email_or_username字段中,用户可以发送电子邮件或用户名,并使用函数validateEmail(),我们可以检查用户是否尝试使用电子邮件或用户名登录 . 然后,如果有效,我们可以进行查询以获取用户实例,并对其进行身份验证 .
这是观点 .
然后:
准备好了 .
将这些要求写入settings.py
要检查,请将此json格式请求发送到您的服务器:
有一种更简洁的方法来获取用户令牌 .
只需运行manage.py shell
然后