Django登录方法不会将用户置于会话中

时间:2019-02-13 14:38:15

标签: python django login

我正在使用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")

然后我成功登录以获取“ Welcome”用户名消息,但随后在访问帖子时却永远无法识别登录用户。

1 个答案:

答案 0 :(得分:0)

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

相关问题