Django Oauth工具包应用程序设置

时间:2016-05-31 14:07:50

标签: django oauth django-rest-framework

Django Oauth Toolkit文档在注册您的应用程序时不会描述重定向uris,授权授权类型或客户端类型字段。

教程说将客户端类型设置为机密,将类型授予密码,并将uris留空。

其他选项有何作用?

e.g。什么是客户类型公共与机密?授权类型密码,凭据,授权,隐式做什么?什么是重定向uris?

我发现了关于它们的稀疏信息,但没有关于django rest framework和django oauth工具包的实际解释。

1 个答案:

答案 0 :(得分:14)

here了解Oauth2协议后,您将获得所有问题的答案

但我会简单地回答你的问题:

我经常使用clientResource Server这两个词。在Oauth2协议中,client表示访问资源,数据或服务的系统。 (可能是您的移动应用程序或javascript应用程序正在使用您的API后端(或Resource Server)的REST API。如果您已经在移动/ JS应用程序中实现了Facebook登录,那么您的API后端请求可能是Facebook提供用户信息。在这种情况下,您的API后端是client,Facebook是Resource Server

客户类型:

客户端类型为confidentialpublic,具体取决于该客户端是否可以保密client_secret AngularJS。 (例如,client_secret应用无法隐藏它client,因为任何人都可以在浏览器中执行"检查元素"并搜索它,所以这样{ {1}}必须注册为public。)

授权授权类型:

Authorization Grant Types协议中有Oauth2种。

  1. 授权码:

    在此授权类型中,client首先请求authorization code,然后authorization codeaccess token进行交换。这是一个两步程序。如果client局外人Resource-owner password based中有更多内容),请使用此选项。

  2. <强>隐式:

    通常与public client_type一起使用。 client一次性获得access token,而不是上面的两步程序。

  3. 基于资源所有者密码:

    clientResource Server之间存在高度信任时使用此选项。您的API后端和移动应用之间就是这种情况。 (您的API后端和Javascript应用之间也存在高度信任,但由于无法保密client_secret,您必须使用Implicit授权类型它)。 FacebookGoogle等永远不会向您提供此类Authorization Grant,因为对您来说,您的API后端是局外人

  4. 客户端凭据:

    最不常用。请在上述文件中阅读。

  5. 重定向URI

    现在,就Redirect URI's而言,仅在Authorization CodeImplicit授权类型中需要它们(不确定Client Credentials一个,有人请赐教我这在评论中)。 提供重定向URI,以便Resource Server知道将access token发送到何处。想象一下,如果您正在实施Facebook登录。在这种情况下,您将转到developers.facebook.com并注册您的应用程序(就像您使用django-oauth-toolkit所做的那样),在注册您的应用程序时,您将指定Redirect URI

    指定Redirect URI是一种说法。 &#34;嘿Facebook,在此URI&#34;上发送访问令牌。因此,如果您将Redirect URI设置为https://your_domain_name.com/token/facebook/Facebook会在Oauth2流程结束时重定向到指定的Redirect URI,并以Access Token的形式提供GET {1}}参数,如https://your_domain_name.com/token/facebook/?token=some_long_string&some=other_parameters