django rest 框架身份验证

Posted

技术标签:

【中文标题】django rest 框架身份验证【英文标题】:django rest Framework authentications 【发布时间】:2013-06-29 19:27:45 【问题描述】:

我已经使用 django rest 框架开发了一个 API,并使用了基于令牌的身份验证,现在我试图从单独的项目中使用它。我如何使用用户名和密码登录并获取令牌作为响应,并在所有下一个 url 调用中使用标头中的令牌。

在 Shell 中,我检查了其中一位用户的令牌,并从终端测试了 api,它的工作原理类似于,

http://127.0.0.1:8000/corporate/company/ -H 'Authorization: Token 9f4702dfddbf89e0346b2ffd10fd69173c178273'

但是如何在 http 调用中使用这个令牌呢?

我已在已安装的应用程序中包含了 rest_framework.authtoken,并在 urls.py 中包含了 url:

url(r'^api-token-auth/', 'rest_framework.authtoken.views.obtain_auth_token')

现在我试图从另一个项目中访问它,我在其中制作了一个登录表单?现在的问题是在哪里发布表格以及表格中应该有哪些字段。如果我已经发布了表单,那么令牌将作为响应返回,那么我如何在下次调用时解析和使用标头?

我已经阅读了教程和 API 指南,但没有任何帮助。关于如何在 Api 准备好并且通过浏览器可访问的 api url 登录时访问我的项目中的 api。

【问题讨论】:

【参考方案1】:

Django rest 框架支持许多身份验证选项。如果需要,您可以使用基本身份验证。 如果您想使用令牌,您需要为您的用户设置一个带有正确令牌的 http 标头。

您需要从文档中将其设置为(将 99... 替换为您的)

Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b

【讨论】:

这是我在问题中已经提到的。我的问题是如何将它从完全独立的项目中插入 url,通过 url 获取数据。 转换成您需要在 http 调用上设置标头的语言。在python中,您可以执行类似的操作 - import httplib ... httpheaders = 'Authorization' : 'Token 99...your_token' 并且当您调用 url 时添加标头 - connection.request('GET', 'index .html', headers=headers)

以上是关于django rest 框架身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django rest 框架中验证 jwt 身份验证中的令牌

令牌身份验证在 Django Rest 框架上不起作用

Django Rest 框架中的基于会话的与令牌身份验证

HTTP基本身份验证背后的Django Rest框架

如何使用迁移框架添加 Django REST 框架身份验证令牌

使用 Django REST 框架进行 JWT 身份验证