我正在尝试通过 DRF 视图登录用户。
@list_route(methods=['post'])
def login(self, request, *args, **kwargs):
login_form = LoginForm(request, data=request.data or None)
if login_form.is_valid():
_login(request._request, login_form.get_user())
else:
raise forms.ValidationError("login wrong")
return Response({})
上面的代码运行无一例外,但它似乎并没有真正登录用户。
当我刷新浏览器时,用户仍未登录。
我怎样才能登录用户?
似乎该_login()
方法不符合您的预期。
正如您在评论中提到的那样。你正在使用:
from django.contrib.auth.views import login as _login
但是这个方法:
显示登录表单并处理登录操作。
你应该(正如你所做的那样)使用:
from django.contrib.auth import login as _login
哪一个:
在请求中保留用户 ID 和后端。这样用户就不必对每个请求重新进行身份验证。
请注意,匿名会话期间设置的数据会在用户登录时保留。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句