2014-12-25 60 views
4

我想從angularjs前端應用程序使用oauth工具包對python/django後端授權用戶。使用隱式的「授權類型」雖然用戶名和密碼是正確的,但我總是會收到帶參數「?error = unauthorized_client」的重定向。我嘗試了授權類型「授權碼」,沒有任何問題。有什麼建議麼?使用隱式授予類型的Django oauth工具包

回答

2

OAuth2 spec,在隱式許可部分(4.2.2.1):

unauthorized_client

客戶端未被授權使用該方法來請求訪問令牌。

我的理解是授權服務器不允許隱式授權。

+0

我很確定我的服務器允許隱式授予,但在閱讀OAuth2規範中的引用後,我認爲我嘗試獲取令牌的方式對於隱式授予無效 – Finkes

0

使用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授權s ite,你會被要求獲得許可。

只要你接受,你將被重定向到您的重定向URL,你將有令牌的URI的片段:

的http:// YourRedirectUri /#expires_in = EXPIRATIONTIME &狀態= & token_type = TYPE &範圍= TYPE & =的access_token VALUEOFTHETOKEN

相關問題