[英]Django User Authentication - Can't pass @login_required decorator
因此,我目前正在尝试通过Braintree( https://github.com/Tivix/django-braintree供参考)实现一个已经存在的用于付款处理的应用程序。 看来此应用程序的所有内容都放在/ payments-billing /目录中,但我似乎无法深入了解它。 似乎阻止我的是放置在视图前面的@login_required装饰器,因为每当我访问目录时,它会将我发送回定义的LOGIN_URL。 但是,我在LOGIN_URL上设置了登录功能,该功能对用户进行身份验证,然后将其发送到/ payments-billing /,但它只是再次重定向回去。 这是我的代码:
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(username=username, password=password)
if user is not None:
# Password verified for user
if user.is_active:
return redirect(self.success_url)
else:
return redirect('/')
else:
return redirect('/')
显然,该用户已通过身份验证并处于活动状态,因为您在尝试通过这两个测试时都通过了该测试,但是它始终只会将用户发送回LOGIN_URL而不是/ payments-billing /。 有人知道这是怎么回事吗?
authenticate
功能不会登录用户,而只是检查用户名/密码。 您还必须调用django.contrib.auth.login()
进行实际的登录。请参阅文档中的示例。
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(username=username, password=password)
login(request, user)
### Now it should get redirected to /payments-billing/
if user is not None:
# Password verified for user
if user.is_active:
return redirect(self.success_url)
else:
return redirect('/')
else:
return redirect('/')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.