一尘不染

一个项目的Django多重身份验证后端,如何?

django

在这里需要认真的帮助。

我有一个用django / python编写的应用程序,我必须对其进行扩展,并在此应用程序中包含一些其他解决方案作为“应用程序”。例如,我要集成的应用程序名为“ my_new_app”。现在为主应用程序编写了一个后端身份验证,我无法使用它。我有一个要查询的mysql数据库,主要应用程序主要使用cassendra和redis。所以我的问题是,有什么办法可以为新应用“ my_new_app”使用单独的身份验证后端,并在同一个域中运行两者?问题可能不是那么清楚,如果有问题我会澄清。


阅读 349

收藏
2020-04-02

共1个答案

一尘不染

你可以有多个身份验证后端。只需AUTHENTICATION_BACKENDSsettings.pyDjango项目中设置in 即可列出你要使用的后端实现。例如,我经常结合使用OpenID身份验证和标准Django身份验证,例如settings.py

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

在此示例中,Django首先将尝试使用进行身份验证django.contrib.auth.backends.ModelBackend,这是Django的默认后端。如果失败,则继续进行到下一个后端django_openid_auth.auth.OpenIDBackend

请注意,你的自定义后端必须位于Django可见的路径中。在此示例中,我必须添加django_openid_auth到INSTALLED_APPS,否则Django将无法导入它并将其用作后端。

2020-04-02