【发布时间】:2019-04-16 17:13:04
【问题描述】:
使用 Django OAuth Toolkit,我将 authentication_grant_type 设置为密码,并将 skip_authorization 设置为 true。我可以使用以下命令生成令牌并使用 curl 刷新令牌,而不会出现问题:
curl -X POST -d "grant_type=password&username=username&password=password" http://p6ge67ihXcwECuy7Z7iomyv16VlEk4uX6B886UWl:NZK5WUWsdb1oI1aAXAy3EOLx6zbXBrtVEIUoI7pK9ZLpwkMTvIcq3FMycHklGjJazHj4TguPPvpEL1JNmL6uZz594DjNk99nKu6Uq4Z66mM26AWD63D9WO449exUjYq3@localhost:8000/o/token/
但是当我尝试用 POST 替换此命令并从 Django 视图调用该 POST 时,我得到以下信息:
<Response [401]>
Unauthorized: /o/token/
任何线索为什么会发生这种情况?我的POST代码如下:
data = {
'grant_type': 'password',
'username': 'username',
'password': 'password'
}
response =
requests.post('http://p6ge67ihXcwECuy7Z7iomyv16VlEk4uX6B886UWl:NZK5WUWsdb1oI1aAXAy3EOLx6zbXBrtVEIUoI7pK9ZLpwkMTvIcq3FMycHklGjJazHj4TguPPvpEL1JNmL6uZz594DjNk99nKu6Uq4Z66mM26AWD63D9WO449exUjYq3@localhost:8000/o/token/', data=data)
我错过了什么?任何帮助将不胜感激。谢谢。
【问题讨论】:
-
response.contents的值是多少? -
好的,现在我在 POST 调用和 response.contents = b'{"error": "unsupported_grant_type 中添加了一个标头 (headers = {'Content-Type': 'application/json'}) “}”。显然客户端 ID 和客户端密码现在被接受,但授权类型不是。即使我将授权类型更改为授权代码,错误仍然存在。有什么想法吗?
标签: django oauth token toolkit