【问题标题】:Django oauth toolkit using implicit grant type使用隐式授权类型的 Django oauth 工具包
【发布时间】:2015-02-23 09:50:54
【问题描述】:

我正在尝试使用 oauth 工具包从 angularjs 前端应用程序对 python/django 后端授权我的用户。使用隐式“授权类型”,我总是收到带有参数“?error = unauthorized_client”的重定向,尽管用户名和密码是正确的。我尝试了授权类型“授权码”,没有任何问题。有什么建议吗?

【问题讨论】:

    标签: python django angularjs oauth oauth-2.0


    【解决方案1】:

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

    unauthorized_client

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

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

    【讨论】:

    • 我很确定我的服务器允许隐式授权,但是在阅读了 OAuth2 Spec 中的引用后,我认为我尝试获取令牌的方式对于隐式授权无效
    【解决方案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://YourRedirectUri/#expires_in=EXPIRATIONTIME&state=&token_type=TYPE&scope=TYPE&access_token =VALUEOFTHETOKEN

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-21
      • 2018-07-05
      • 1970-01-01
      • 2018-05-18
      • 2011-11-23
      • 1970-01-01
      • 2019-03-11
      相关资源
      最近更新 更多