Django REST框架:如何为现有用户和新用户创建/处理auth_令牌?

Django REST框架:如何为现有用户和新用户创建/处理auth_令牌?,django,django-rest-framework,Django,Django Rest Framework,目前正在开发一个web应用程序,我正在为它实现一个API。iOS应用程序将使用此API Django REST Framekwork提供了一个方便的视图,可以为用户创建令牌,前提是标题中包含用户名+密码: from rest_framework.authtoken import views urlpatterns += [ url(r'^api-token-auth/', views.obtain_auth_token) ] 假设用户将从web和应用程序注册和登录。最好的处理方法是什

目前正在开发一个web应用程序,我正在为它实现一个API。iOS应用程序将使用此API

Django REST Framekwork提供了一个方便的视图,可以为用户创建令牌,前提是标题中包含用户名+密码:

from rest_framework.authtoken import views

urlpatterns += [
    url(r'^api-token-auth/', views.obtain_auth_token)
]
假设用户将从web和应用程序注册和登录。最好的处理方法是什么?我最大的质疑是现有用户将从iOS应用程序登录(他们已经有一个帐户,但没有身份验证令牌)。我目前的计划是:

  • 为所有现有用户创建身份验证令牌
  • 在注册时集成令牌创建,以涵盖未来的案例

  • 这样我就可以处理所有的案件。但是有更好的方法吗?

    你所描述的看起来不错。您还需要以某种方式使应用程序为所有现有用户获取令牌。假设您没有在应用程序中存储凭据(您不应该这样做,否则就不需要令牌),您要么需要强制重新身份验证,要么提供一个宽限期,在该宽限期内以前的身份验证方法仍然有效。@TomaszZieliński-我计划将令牌存储在keychain中,这应该是安全的。这是个坏主意吗?您能否详细说明“让应用程序为所有用户获取令牌”的含义?假设您正在向现有系统(即应用程序和后端)添加基于令牌的身份验证,则应用程序必须以其他方式向后端进行身份验证?如果是这样,则当前使用该应用的用户没有在其应用中存储身份验证令牌。他们需要他们继续前进。所以你需要让应用程序获得代币。哦,是的。我想我应该用用户+密码进行身份验证-如果这些都是正确的,检查令牌是否已经存在,如果不存在-创建并返回到应用程序,否则-只返回它。听起来不错?是的,我觉得不错。但为了确保我们在同一页上--您将在应用程序中强制对现有用户进行重新验证,以获取令牌?您所描述的看起来不错。您还需要以某种方式使应用程序为所有现有用户获取令牌。假设您没有在应用程序中存储凭据(您不应该这样做,否则就不需要令牌),您要么需要强制重新身份验证,要么提供一个宽限期,在该宽限期内以前的身份验证方法仍然有效。@TomaszZieliński-我计划将令牌存储在keychain中,这应该是安全的。这是个坏主意吗?您能否详细说明“让应用程序为所有用户获取令牌”的含义?假设您正在向现有系统(即应用程序和后端)添加基于令牌的身份验证,则应用程序必须以其他方式向后端进行身份验证?如果是这样,则当前使用该应用的用户没有在其应用中存储身份验证令牌。他们需要他们继续前进。所以你需要让应用程序获得代币。哦,是的。我想我应该用用户+密码进行身份验证-如果这些都是正确的,检查令牌是否已经存在,如果不存在-创建并返回到应用程序,否则-只返回它。听起来不错?是的,我觉得不错。但为了确保我们在同一个页面上--您将在应用程序中强制对现有用户重新验证以获取令牌?