我刚刚开始使用 allauth 的 Django 项目,我配置了基本设置,没有使用任何第三方提供商。我已经为我的个人资料页面创建了一个基本模板。到目前为止,一切都按预期工作,但如果转到 localhost:8000/accounts/profile,即使之前没有登录,我也可以看到该页面。我试图在文档中查找如何定义哪个页面需要登录,但我没有找到任何内容。
有什么想法吗? 谢谢!
编辑 这些是我的 allauth 设置:
#Allauth Config
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_SIGNUP_FORM_CLASS = 'picturesApp.forms.SignupForm'
ACCOUNT_EMAIL_VERIFICATION = 'none'
最佳答案
一种可能的方法是使用“login_required”装饰器来装饰处理您的个人资料页面的 View 。
示例:
from django.contrib.auth.decorators import login_required
urlpatterns = patterns('',
# MY PROFILE
url(r'^$',
login_required(MyProfileDetailView.as_view()),
name="my_profile"
)
)
此装饰器验证用户是否已登录,否则返回重定向 http 响应(到登录 URL)。
希望这对您有帮助。
关于python - Django allauth 允许的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27324154/