Android应用程序前端与Django后端自动登录会话

时间:2013-11-29 07:49:43

标签: android python django

我使用Android应用程序前端和Django后端。但它没有自动登录。

from django.contrib.auth import login as auth_login
def login_app(request):
    ...
    if request.user.is_authenticated():
        ...
    username = request.POST.get('username', '')
    password = request.POST.get('password', '')
    user = authenticate(username=username, password=password)
    if user is not None and user.is_active:
        auth_login(request, user)
        ...
    return ...

当我两次打电话给这个功能时。它获得了一个匿名用户实例。

if request.user.is_authenticated():

我该如何做到可以是真的?
设置cookie?怎么样?
英语不好的借口。

1 个答案:

答案 0 :(得分:0)

if request.user.is_authenticated():

主要:请求用户登录成功。例如,人们的cookie没有过时。

auth_login执行成功时,django将帮助您保存用户cookie和sesion。

例如: 在模板中:

{% if user.is_authenticated %}
    <p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
    <p>Welcome, new user. Please <a href={% url 'login_url' %}>log in</a>.</p>
{% endif %}

在观点中:

def my_view(request):
   if not request.user.is_authenticated():
        return redirect('/login/')
在您的登录视图中

def login_app(request):
    ...
    if request.user.is_authenticated():
        #tell user he has login successful,or redict other page
    else:
        username = request.POST.get('username', '')
        password = request.POST.get('password', '')
        user = authenticate(username=username, password=password)
        if user is not None and user.is_active:
            auth_login(request, user)
        #tell user he login successfull

更多信息doc

你的Android应用已经修改了http响应,它有cookie信息,请保存,下一个请求带来cookie。

django的doc非常++,请仔细阅读

英语不好的借口。