Django oauth toolkit使用隐式授权类型

4

我正在尝试使用oauth工具包从angularjs前端应用程序对python/django后端中的用户进行授权。虽然用户名和密码是正确的,但使用implicit “授权类型”时,我总是收到带有“?error=未经授权的客户端”参数的重定向。我尝试使用“授权代码”授权类型而没有任何问题。有什么建议吗?

2个回答

2

使用Oauth工具包创建的授权服务器允许grant_type=implicit。以下是如何使用HTML表单调用服务器请求令牌的示例。

<form id="user_form" method="get" action="Your Oauth Authorize URL" 
enctype="multipart/form-data">

Client_id: <input type="text" name="client_id" value="" size="100" />
<br />

Redirect Ui:<input type="text" name="redirect_uri" value="Your redirect_uri">
<br />

<input type="hidden" name="response_type" value="token">
{% csrf_token %}

<input type="submit" value="submit" />

关于您的应用程序注册,只需确保将您的应用程序定义为:
  • 客户端类型:公共
  • 授权授予类型:隐式
  • 重定向Uri:您的重定向Uri
提交表单后,您将被重定向到您的Oauth授权站点,并且会要求您授权。
一旦您接受,您将被重定向到您的重定向url,并且您将在Uri的片段处获得令牌:
http://您的重定向Uri/#expires_in = EXPIRATIONTIME &amp; state =&amp; token_type = TYPE &amp; scope = TYPE &amp; access_token = VALUEOFTHETOKEN

2

来自OAuth2规范,在隐式授权部分(4.2.2.1):

unauthorized_client

客户端未被授权使用此方法请求访问令牌。

我理解的是认证服务器不允许隐式授权。


我非常确定我的服务器允许隐式授权,但是在阅读了OAuth2规范中你提供的引用后,我认为我尝试获取令牌的方式对于隐式授权来说是无效的。 - Finkes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接