Django Oauth工具包应用程序设置

she*_*enk 13 django oauth django-rest-framework

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

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

其他选项有什么作用?

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

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

Amr*_*nia 18

一旦您从这里阅读有关Oauth2协议的内容,您就会得到所有问题的答案

但我会简要回答你的问题:

我将使用的话clientResource Server频繁.在Oauth2协议中,client单元,访问资源,数据或服务的系统.(它可能是您的移动应用程序或javascript应用程序消耗您的API后端(或Resource Server)的REST API .如果您已经在您的移动/ JS应用程序中实现了Facebook登录,很可能,您的API后端请求Facebook获取用户的信息.在这种情况下, API后端正在client和Facebook一起Resource Server)

客户类型:

客户端类型是confidential或者public取决于客户端是否可以client_secret保密.(例如,AngularJS应用程序无法保持client_secret隐藏,因为任何人都可以在浏览器中执行"检查元素"并搜索它,因此client必须将其注册为public.)

授权授权类型:

有4种Authorization Grant TypesOauth2协议.

  1. 授权码:

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

  2. 隐式:

    通常与public client_type.一起使用.取而代之的是两个步骤上述情况,client得到access token一气呵成.

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

    当和之间存在高度信任时使用.您的API后端和移动应用之间就是这种情况.(您的API后端和应用程序之间也存在高度信任,但由于它不能保密,因此您必须使用Grant类型).或者等等永远不会给你这种,因为对他们来说,你的API后端是一个局外人.clientResource ServerJavascriptclient_secretImplicitFacebookGoogleAuthorization Grant

  4. 客户凭证:

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

重定向URI:

现在,就目前Redirect URI's而言,它们只需要Authorization CodeImplicit授予类型(不确定Client Credentials一个,有人请在评论中启发我).给出重定向URI,以便Resource Server知道发送的位置access token.想象一下,如果你正在实施Facebook登录.在这种情况下,您将进入developers.facebook.com并注册您的应用程序(就像您所做的那样django-oauth-toolkit),在注册您的应用程序时,您将指定一个Redirect URI.

指定a Redirect URI是一种说法."嘿Facebook,在这个URI上发送访问令牌".因此,如果您设置Redirect URI类似https://your_domain_name.com/token/facebook/的内容,FacebookRedirect URI在Oauth2进程结束时重定向到您指定的并Access TokenGET参数的形式提供,例如https://your_domain_name.com/token/facebook /?token = some_long_string&some = other_parameters.