首页 > 解决方案 > Django登录方法不会将用户置于会话中

问题描述

我正在使用 django 为新闻故事创建一个 api。我需要一个登录方法,所以我创建了自己的处理程序:

def HandleLogin(request):
    if(request.method == 'POST'):
        un = request.POST.get('username')
        pw = request.POST.get('password')
        # data = 'user name = ' + un + ', password = ' + pw
        user = authenticate(request, username = un, password = pw)
    if user is not None:
        if user.is_active:
            login(request,user )
            if(user.is_authenticated):
                # print('Welcome ' + user.username )
                http_login_succ = HttpResponse("Welcome "+ user.username)
                http_login_succ['Content-type'] = 'text/plain'
                http_login_succ.status_code = 200
                http_login_succ.reason_phrase = 'OK'
            return http_login_succ
        else:
            return HttpResponse ('disabled account')
    else:
        return HttpResponse('invalid login')

之后,我只希望登录用户能够访问您发布新闻故事的网站点:

def PostStory(request):
    if request.user.is_authenticated:
        return HttpResponse("Logged in")
        #Code when logged in
    else:
        return HttpResponse("Not Logged in")

然后我成功登录并获得“欢迎”用户名消息,但是在访问 poststory 时它永远无法识别登录用户。

标签: pythondjangologin

解决方案


检查您的会话中间件是否已激活并在正确的位置


推荐阅读