【问题标题】:How to have two separate authentication system in django?如何在 django 中有两个独立的身份验证系统?
【发布时间】:2013-02-05 05:03:13
【问题描述】:

我需要有两个不同的登录/注册系统。

1: One for the general user.
2: Second for the Channels admin.

Both will have different email id, password etc in two different tables. 
For the general     user it will go in the `auth_user` table and for the channel 
it I'd be creating another different models/table.

我知道 django 提供了一个完整的身份验证系统,可供普通用户使用。但是在频道管理员的情况下如何实现相同的呢?

我试图在 django 的文档中查找 AUTHENTICATION_BACKENDSAUTH_USER_MODEL

我无法理解如何为频道管理部分设置会话。

所以,如果有人能告诉我如何以及有什么方法可以同时实现这两者。

【问题讨论】:

  • 不可能使用相同的系统?我的意思是,您可以实现自己的登录/身份验证逻辑,但如果愿意,可以使用 Django 的“后端”。
  • 我正在考虑为这两个创建两个不同的表,对于一般用户可以通过默认身份验证系统完成,但是如何为通道一做到这一点?我们可以同时使用默认的吗?
  • 您需要为两种不同类型的会话设置两种不同类型的会话吗?在我看来,您只希望会话存储两种不同类型的信息,对吧?
  • 是的,我需要为这两个会话设置两个不同的会话。
  • 怎么回事?这是什么原因?如果是这样,您需要创建一个特殊的 ChannelSession 对象并将其附加到 django 会话。

标签: django django-authentication


【解决方案1】:

你想看看Customizing authentication in Django。您可以根据需要使用多种不同的身份验证方式。 Session 记录中存储的部分信息是成功使用了哪个身份验证后端。它有点复杂,但它们为您提供了几乎任何您喜欢做的所有必要的控制。

几年前,我在一个系统上使用了它,其中 主要 用户/密码信息来自外部订阅管理服务器。如果用户/通行证在正常的用户身份验证系统上不起作用,我检查了另一个系统。如果成功,我会即时创建一个新用户。

【讨论】:

    【解决方案2】:

    Django 也有一个完整的内置管理员登录界面。检查https://docs.djangoproject.com/en/dev/ref/contrib/admin/

    【讨论】:

    • 题外话
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 2013-12-12
    相关资源
    最近更新 更多