Django Rest Framework 的令牌身份验证或 OAuth 2 API(或两者?)
Token Authentication or OAuth 2 for Django Rest Framework API (Or Both?)
我正在使用 Django REST Framework 设置一个新的 API,我对如何设置身份验证有点困惑。我正在设置的 API 由 public 使用,我希望他们拥有最大的灵活性。
开箱即用,DRF 提供基本身份验证、会话身份验证和令牌身份验证。使用其他包,也可以添加OAuth2认证。
如果我将 API 设置为使用令牌身份验证(开箱即用),为什么我需要设置 OAuth2?我读过一些关于这个的内容,但是由于 DRF 的 Token Auth 是相当自定义的,所以我没能找到太多比较这两种方法的东西。
据我所知,OAuth 只是 Token Auth 的一种高级形式,那么为什么要安装和配置它呢?
我对 OAuth2 略微熟悉,但不得不做一些功课来思考这个问题。 OAuth 相对于内置令牌身份验证的优势在于 OAuth 可以由计算机协商,为每个客户端提供不同的令牌,并且可以轻松撤销。
因此,如果我在 API 上将 OAuth 设置为身份验证,您就可以委托第三方使用您的数据。例如,Twitter 具有 OAuth,因此您可以设置第三方客户端——Tweetie 或其他客户端——使用 OAuth 令牌,它可以使用它来访问您的数据。但是,如果您停止使用 Tweetie,或者您不再信任 Tweetie,您可以在不重置密码的情况下撤销它的 OAuth 访问权限,从而撤销配置的每个客户端的访问权限。
因此,就我而言,我主要阅读 API,并且(还)没有特定用户私有的资源。因此,我们不需要 OAuth,因为我们预计人们不需要将密码提供给第三方客户端。
我正在使用 Django REST Framework 设置一个新的 API,我对如何设置身份验证有点困惑。我正在设置的 API 由 public 使用,我希望他们拥有最大的灵活性。
开箱即用,DRF 提供基本身份验证、会话身份验证和令牌身份验证。使用其他包,也可以添加OAuth2认证。
如果我将 API 设置为使用令牌身份验证(开箱即用),为什么我需要设置 OAuth2?我读过一些关于这个的内容,但是由于 DRF 的 Token Auth 是相当自定义的,所以我没能找到太多比较这两种方法的东西。
据我所知,OAuth 只是 Token Auth 的一种高级形式,那么为什么要安装和配置它呢?
我对 OAuth2 略微熟悉,但不得不做一些功课来思考这个问题。 OAuth 相对于内置令牌身份验证的优势在于 OAuth 可以由计算机协商,为每个客户端提供不同的令牌,并且可以轻松撤销。
因此,如果我在 API 上将 OAuth 设置为身份验证,您就可以委托第三方使用您的数据。例如,Twitter 具有 OAuth,因此您可以设置第三方客户端——Tweetie 或其他客户端——使用 OAuth 令牌,它可以使用它来访问您的数据。但是,如果您停止使用 Tweetie,或者您不再信任 Tweetie,您可以在不重置密码的情况下撤销它的 OAuth 访问权限,从而撤销配置的每个客户端的访问权限。
因此,就我而言,我主要阅读 API,并且(还)没有特定用户私有的资源。因此,我们不需要 OAuth,因为我们预计人们不需要将密码提供给第三方客户端。