用 AllAuth 覆盖 Django Admin

Overriding Django Admin with AllAuth

我觉得原来的 django admin 登录是不安全的,所以我想让 /admin 总是重定向到我的 AllAuth 登录页面,即使用户已经登录。

urls.py

admin.site.login = login_required(admin.site.login)

如果用户未登录,这将从 django 管理登录页面重定向用户,但如果用户已登录,则不会重定向用户。因此他们仍然可以暴力破解。如何编辑 login_required 装饰器以检查 is_superuser。

您可以使用:

from django.contrib.auth.decorators import user_passes_test

admin.site.login  = user_passes_test(lambda u: u.is_superuser)(admin.site.login)