Python Django OAuth工具包“;“基于密码的资源所有者”;赠款类型
我正在尝试使用Django OAuth Toolkit为Django+Rest框架设置OAuth2,在使用“基于资源所有者密码”的授权类型时,我无法理解以下难题 我可以使用以下方法为注册应用程序的同一用户(客户端所有者)成功获取access_令牌: 但是,当我尝试使用相同的客户端id和客户端密码,但为不同的用户更改Python Django OAuth工具包“;“基于密码的资源所有者”;赠款类型,python,django,oauth-2.0,django-rest-framework,Python,Django,Oauth 2.0,Django Rest Framework,我正在尝试使用Django OAuth Toolkit为Django+Rest框架设置OAuth2,在使用“基于资源所有者密码”的授权类型时,我无法理解以下难题 我可以使用以下方法为注册应用程序的同一用户(客户端所有者)成功获取access_令牌: 但是,当我尝试使用相同的客户端id和客户端密码,但为不同的用户更改用户名和密码时,我得到 { “错误描述”:“提供的凭据无效。”, “错误”:“无效的授权” } 因此,注册的应用程序似乎只能使用一个“资源所有者”-“应用程序(客户端)所有者”本身,
用户名
和密码
时,我得到
{
“错误描述”:“提供的凭据无效。”,
“错误”:“无效的授权”
}
因此,注册的应用程序似乎只能使用一个“资源所有者”-“应用程序(客户端)所有者”本身,这使得“基于资源所有者密码”的授权类型毫无用处,因为它与“客户端凭据”的作用相同,但不使用“用户名”和“密码”。换句话说,我需要注册的应用程序代表另一个用户,而不是已经注册应用程序的用户(我),但我无法回避它
当然,我总是可以编写自定义授权代码,但它是否应该得到开箱即用的支持(我想知道)?问题在于简单的错误配置和误用,导致了模棱两可的行为 这项工作:
- base64编码的“授权”头(
)client\u id:client\u secret
- 确保应用程序设置设置为“基于资源所有者密码”。请注意,它不能是“公共的”,此流绝对需要
client\u secret