【发布时间】:2015-09-22 01:06:13
【问题描述】:
我正在使用 Django REST 框架设置一个新的 API,但我有点困惑如何设置身份验证。我正在设置的 API 由公众使用,我希望他们拥有尽可能多的灵活性。
开箱即用,DRF 提供基本身份验证、会话身份验证和令牌身份验证。使用另一个包,您还可以添加 OAuth2 身份验证。
如果我将我的 API 设置为具有令牌身份验证(开箱即用),我为什么需要设置 OAuth2?我已经阅读了一些关于此的内容,但由于 DRF 的 Token Auth 是相当定制的,因此我无法找到太多比较这两种方法的内容。
据我所知,OAuth 只是 Token Auth 的一种高级形式,那么为什么还要安装和配置它呢?
【问题讨论】:
-
Oauth 让用户无需创建新的用户名和密码即可方便地登录您的网站。他们登录谷歌(或脸书,或任何人),谷歌告诉你他们就是他们所说的人。这意味着他们不必为您的网站创建和记住新密码(最好的情况),或者他们最大限度地减少您的安全处理密码的责任(密码重用..)。如果破解者攻击您的网站,他们只能访问您的网站,因为他们只有从 google 到您网站的令牌。不是用户重复使用密码的所有网站的用户名和密码。
-
这似乎是 OAuth 的一个用例,是的,但是在 API 的上下文中,我不确定这是否正确。不过,根据我目前的理解,我已经在下面发布了一个答案。
标签: authentication oauth-2.0 django-rest-framework