Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django OAuth工具包“;“基于密码的资源所有者”;赠款类型_Python_Django_Oauth 2.0_Django Rest Framework - Fatal编程技术网

Python Django OAuth工具包“;“基于密码的资源所有者”;赠款类型

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和客户端密码,但为不同的用户更改用户名和密码时,我得到 { “错误描述”:“提供的凭据无效。”, “错误”:“无效的授权” } 因此,注册的应用程序似乎只能使用一个“资源所有者”-“应用程序(客户端)所有者”本身,

我正在尝试使用Django OAuth Toolkit为Django+Rest框架设置OAuth2,在使用“基于资源所有者密码”的授权类型时,我无法理解以下难题

我可以使用以下方法为注册应用程序的同一用户(客户端所有者)成功获取access_令牌:

但是,当我尝试使用相同的客户端id和客户端密码,但为不同的用户更改
用户名
密码
时,我得到

{
“错误描述”:“提供的凭据无效。”,
“错误”:“无效的授权”
}

因此,注册的应用程序似乎只能使用一个“资源所有者”-“应用程序(客户端)所有者”本身,这使得“基于资源所有者密码”的授权类型毫无用处,因为它与“客户端凭据”的作用相同,但不使用“用户名”和“密码”。换句话说,我需要注册的应用程序代表另一个用户,而不是已经注册应用程序的用户(我),但我无法回避它


当然,我总是可以编写自定义授权代码,但它是否应该得到开箱即用的支持(我想知道)?

问题在于简单的错误配置和误用,导致了模棱两可的行为

这项工作:

  • base64编码的“授权”头(
    client\u id:client\u secret
  • 确保应用程序设置设置为“基于资源所有者密码”。请注意,它不能是“公共的”,此流绝对需要
    client\u secret

我也有同样的问题。DOT文档对应用程序注册没有帮助。您找到解决方案了吗?我面临着同样的问题,我已经测试过了,我没有遇到任何问题:这意味着我可以用用户名和密码对用户进行身份验证,而无需将该用户添加为应用程序的所有者<代码>django oauth工具包遵循以下步骤。尝试从头开始设置一个新应用程序,然后重新设置。如果它不起作用,添加更多信息我也面临同样的问题,我可以使用基于资源所有者密码的旧应用程序,但现在新应用程序我无法使用它,因为它是相同的django oauth toolkit版本,所以我认为我在新应用程序中做错了什么。我面临同样的问题,你们找到解决办法了吗?