如何覆盖wagtail身份验证?

时间:2017-06-19 18:14:58

标签: django authentication wagtail

当我尝试在/cms/访问我的w back后台时,我被重定向到wagtail的登录页面/cms/login/

但是,我想使用我自己的自定义登录信息,这是网站其余部分的默认设置,位于/auth/

我的LOGIN_URL已在django设置中设为/auth/

编辑:有人建议这是 how do you override namespaced url patterns 的一般性问题,但事实并非如此。网址没有命名空间,我正在寻找解决这个特定问题的wagtail功能。幸运的是,该功能确实存在。

2 个答案:

答案 0 :(得分:2)

Wagtail设置WAGTAIL_FRONTEND_LOGIN_URL允许您配置用户登录Wagtail管理员的方式。

来自http://docs.wagtail.io/en/v1.10.1/advanced_topics/privacy.html#setting-up-a-login-page

  

如果股票Django登录视图不合适 - 例如,您希望使用外部认证系统,或者您正在将Wagtail集成到已经具有工作登录视图的现有Django站点中 - 您可以指定通过WAGTAIL_FRONTEND_LOGIN_URL设置

登录视图

答案 1 :(得分:2)

上面建议的WAGTAIL_FRONTEND_LOGIN_URL专门针对前端用户,并且没有针对管理员用户的等效设置。你可以这样使用redirect_to_login

from django.contrib.auth.views import redirect_to_login
from django.urls import reverse

from wagtail.admin import urls as wagtailadmin_urls


def redirect_to_my_auth(request):
    return redirect_to_login(reverse('wagtailadmin_home'), login_url='myauth:login')



urlpatterns = [
    url(r'^cms/login', redirect_to_my_auth, name='wagtailadmin_login'),
    url(r'^cms/', include(wagtailadmin_urls)),
]