我有一个 iOS 应用程序,它使用由 Django REST 框架提供支持的 API 来存储、更新和从数据库中获取数据。我需要提供另外两个将用户数据存储在服务器上的功能:
- 使用邮箱登录
- 使用 Facebook 登录
似乎有两种不同的身份验证系统可供我使用:
我应该如何在我的 API 中处理这个问题?
最佳答案
当你在 iOS 上使用 Django REST 框架时,除非你使用浏览器,否则标准的 Django 身份验证系统是不可能的。这是通过 DRF authentication system as SessionAuthentication
公开的它依赖于您的应用程序能够随请求传输 cookie 和 CSRF token ,这通常是不可能的。
在大多数情况下,如果您已经在使用 Django 身份验证系统,并且您可以信任存储密码的应用程序,您会 use something like BasicAuthentiction
.大多数人不能,或者他们不信任他们的应用程序生态系统,所以他们使用基于 token 的身份验证系统 like TokenAuthentication
或 OAuth2Authorization
(结合 with an OAuth provider )。您可以阅读有关每种身份验证类型的更多信息 in this answer on Stack Overflow .
但在您的情况下,您基本上只能使用OAuth 2 之类的东西。这是因为您需要将用户与 token 相关联,并且大多数身份验证系统都要求您提供用户名和密码。对于社交帐户,通常情况并非如此,他们通常无法登录。OAuth 2 与标准 Django 登录结合使用,因此您不仅限于用户名和密码。我在 this detailed Stack Overflow answer 中写了更多关于它如何工作的内容。 .
关于python - 使用 Django Rest Framework 和 IOS 应用程序时要使用哪种身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27997483/