使用隐式授权类型的Django oauth工具包

时间:2014-12-25 22:09:25

标签: python django angularjs oauth oauth-2.0

我正在尝试使用oauth工具包从angularjs前端应用程序授权我的用户使用python / django后端。使用隐式"授权类型"我总是收到一个参数"?error = unauthorized_client"虽然用户名和密码是正确的。我尝试了授权类型"授权代码"没有任何麻烦。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

来自OAuth2 spec,在隐式授权部分(4.2.2.1)中:

  

unauthorized_client

     
    

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

  

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

答案 1 :(得分:1)

使用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授权网站,您将被要求获得许可。

一旦您接受,您将被重定向到您的重定向网址,并且您将在Uri的片段中获得令牌:

的http:// <强> YourRedirectUri /#expires_in = <强> EXPIRATIONTIME &安培;状态=安培; token_type = <强> TYPE &安培;范围= <强> TYPE &安培; =的access_token的 VALUEOFTHETOKEN