【问题标题】:Recursive URL Authentication with Django-Allauth使用 Django-Allauth 进行递归 URL 身份验证
【发布时间】:2016-06-19 00:39:45
【问题描述】:

我正在为我的应用程序构建仪表板并使用 django-allauth 进行身份验证。如何要求我的所有视图都需要递归到我的仪表板 URL 的登录,而无需在每个视图上显式设置它?下面的视图是我的仪表板的主页。谢谢。

@verified_email_required
def back_office_index(request):
    return render(request, 'backoffice/index.html')

【问题讨论】:

    标签: django django-templates django-views django-allauth


    【解决方案1】:

    您可以为此使用中间件,如下所示:

    from allauth.account.decorators import verified_email_required
    
    class VerifiedEmailRequiredMiddleware:
    
        def process_request(self, request):
            if request.path.startswith('/dashboard'):
                return verified_email_required(lambda r: None)(request)
    

    【讨论】:

    • 我将此添加到我的视图中,但什么也没发生,我搜索了要添加到我的设置文件的中间件类,但没有看到。我错过了什么吗?谢谢。
    • 不确定您所说的“将此添加到我的视图中”是什么意思。您不会将中间件添加到您的视图中。将上述代码放入yourproject/some_app/middleware.py 并确保您的settings.MIDDLEWARE_CLASSES 包含一个条目yourproject.some_app.middleware.VerifiedEmailRequiredMiddleware
    • 对不起,我还在学习 Django。我已经尝试过您的建议,但在控制台中我得到了一个很长的字符串 .../dashboard/accounts/login/%25252525252525252525252525253Fnext%25252525252525252525252525253D/dashboard/accounts/login/%2525252525252525252525252525253Fnext%252525252525252525252525252525253D/dashboard/accounts/login/%25252525252525252525252525252525253Fnext%25252525252525252525252525252525253D/dashboard/ HTTP/1.1" 302 0 ... - 我尝试了上面代码中设置的路径的不同变体,但没有任何效果。
    • @StudioRooster,你有一个重定向循环。这个中间件需要排除登录和验证 url(或类似的东西)。否则,验证要求将用户发送到登录或验证页面,该页面运行验证要求,从而变成无限重定向循环。它在上面的实现方式,它确实排除了它。你可能修改了它,它不再排除它了。
    猜你喜欢
    • 2017-07-16
    • 2021-01-19
    • 2018-09-14
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 2016-06-03
    相关资源
    最近更新 更多