为不同类型的用户使用两个不同的身份验证后端

时间:2014-04-16 11:49:53

标签: django authentication backend

我的django应用程序有两种用户。

  1. 雇主。使用基于默认模型的身份验证后端。
  2. 候选。必须使用基于令牌的身份验证后端。
  3. 我有雇主的后端,但我如何使用第二个基于令牌的后端作为应用程序的候选相关部分?

1 个答案:

答案 0 :(得分:1)

django提供了AUTHENTICATION_BACKENDS设置,可以满足您的需求。

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
)

我们看起来像这样......

AUTHENTICATION_BACKENDS = (
    'social_auth.backends.facebook.FacebookBackend',  # fb backend par social_auth
    'social_auth.backends.twitter.TwitterBackend',  # twitter backend par social_auth
    'backends.EmailAuthBackend',
    'backends.APIAuthBackend',
    'django.contrib.auth.backends.ModelBackend',
)

在out case中,backends.APIAuthBackend是我们检查提供的用户身份验证令牌的地方。您只需要在该类的def authenticate方法中编写您的身份验证代码,如果该令牌存在,则返回用户。

django docs提供了更多信息。

https://docs.djangoproject.com/en/dev/topics/auth/customizing/#writing-an-authentication-backend