gpt4 book ai didi

Django Oauth 工具包应用程序设置

转载 作者:行者123 更新时间:2023-12-02 03:53:42 25 4
gpt4 key购买 nike

Django Oauth Toolkit 文档在注册应用程序时没有描述重定向 uri、授权授予类型或客户端类型字段。

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

其他选项有什么作用?

例如什么是客户类型公共(public)与 secret ?授权类型密码、凭据、授权、隐式有什么作用?重定向 uri 有什么用?

我发现关于它们的信息很少,但没有实际解释,因为它们与 django rest 框架和 django oauth 工具包有关。

最佳答案

here 阅读有关 Oauth2 协议(protocol)的内容后,您将获得所有问题的答案。
但我会尽量简短地回答你的问题:
我将使用 clientResource Server频繁地。在 Oauth2协议(protocol),client指访问资源、数据或服务的系统。 (它可能是您的移动应用程序或 JavaScript 应用程序使用您的 API 后端的 REST API(或 Resource Server)。如果您在移动/JS 应用程序中实现了 Facebook 登录,那么您的 API 后端很可能会向 Facebook 请求用户信息。在这种情况下,您的 API 后端是 client,而 Facebook 是 Resource Server)
客户类型:
客户端类型是 confidentialpublic取决于该客户是否可以保留它的client_secret一个 secret 。 (例如,一个 AngularJS 应用程序不能隐藏它的 client_secret,因为任何人都可以在浏览器中执行“检查元素”并搜索它,所以这样的 client 必须注册为 public。)
授权授予类型:
有四种Authorization Grant TypesOauth2协议(protocol)。

  • 授权码:
    在这种授权类型中,client请求 authorization code首先,然后交换 authorization code对于 access token .这是一个两步程序。如果 client是一个局外人(更多信息请参见 Resource-owner password based)。
  • 隐式:
    通常与 public 一起使用client_type . client 不是上面的两步程序,而是获取 access token一气呵成。
  • 基于资源所有者密码:
    这在 client 之间存在高度信任时使用。和 Resource Server .这就是您的 API 后端和您的移动应用程序之间的情况。 (您的 API 后端和 Javascript 应用程序之间也存在高度信任,但由于它无法将其 client_secret 保密,因此您必须使用 Implicit 授予类型)。 FacebookGoogle等永远不会给你这种Authorization Grant因为,对他们来说,您的 API 后端是局外人。
  • 客户凭证:
    它最不常用。请阅读上述文件。

  • 重定向 URI:
    现在,就 Redirect URI's关心,它们仅在 Authorization Code 中需要或 Implicit授予类型(不确定 Client Credentials 一,有人请在评论中告诉我)。
    给出重定向 URI,以便 Resource Server知道在哪里发送 access token .想象一下,如果您正在实现 Facebook 登录。在这种情况下,您将转到 developers.facebook.com并注册您的应用程序(就像您对 django-oauth-toolkit 所做的那样),在注册您的应用程序时,您将指定一个 Redirect URI .
    指定 Redirect URI是一种说法。 “嘿 Facebook,在这个 URI 上发送访问 token ”。所以如果你设置 Redirect URI类似 https://your_domain_name.com/token/facebook/, Facebook将重定向到您指定的 Redirect URI在 Oauth2 进程结束时给出 Access Token形式为 GET参数,例如 https://your_domain_name.com/token/facebook/?token=some_long_string&some=other_parameters。

    关于Django Oauth 工具包应用程序设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37548045/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com