我正在做一个项目,为移动的设备启用djangorest框架认证,我使用默认的令牌认证从发送用户名和密码的post请求中获取用户令牌。
curl --data "username=username&password=password" http://127.0.0.1:8000/api/api-token-auth/
(api/api-token-auth/是使用获取验证令牌视图配置的URL)
urlpatterns = [
url(r'^api/api-token-auth/', obtain_auth_token),
url(r'^', include(router.urls)),
]
并且响应是用户令牌。
{"token":"c8a8777aca969ea3a164967ec3bb341a3495d234"}
我需要获得用户令牌授权使用电子邮件密码后,而不是用户名密码,或两者兼而有之。我正在阅读自定义身份验证的文档http://www.django-rest-framework.org/api-guide/authentication/#custom-authentication...但真的,不是很清楚我。这对我很有帮助...谢谢:)。
4条答案
按热度按时间zzwlnbp81#
好了,我找到了一种方法,可以使用电子邮件或用户名获取auth令牌......这是序列化程序:
在email_or_username字段中,用户可以发送电子邮件或用户名,使用函数validateEmail(),我们可以检查用户是否尝试使用电子邮件或用户名登录,然后,我们可以查询用户示例是否有效,并对其进行身份验证。
这就是风景。
然后:
准备好了
zyfwsgd62#
将这些要求写入settings.py
要进行检查,请将此json格式请求发送到您的服务器:
58wvjzkj3#
更改库正在使用的默认序列化程序,例如在auth/serializers.py中
覆盖视图,例如auth/ www.example.com中的视图views.py
例如,在auth/ www.example.com中连接URLurls.py
你已经准备好了!!
bvk5enib4#
有一种更干净的方法来获取用户令牌。
只需运行manage.py shell 程序
然后