我想在登錄auth用戶後重定向索引頁面。但不知道如何編碼對數據的響應。多次重定向登錄頁面Django Ajax Auth登錄
views.py
@csrf_exempt
def Login(request):
if request.method == 'POST':
print("POST Method")
username = request.GET.get('username')
password = request.GET.get('password')
if username and password:
# Test username/password combination
user = authenticate(username=username, password=password)
# Found a match
if user is not None:
# User is active
if user.is_active:
# Officially log the user in
login(request, user)
data = {'success': True}
return render_to_response('index/index.html', data, RequestContext(request))
else:
data = {'success': False, 'error': 'User is not active'}
return render_to_response('accounts/login.html', data, RequestContext(request))
else:
data = {'success': False, 'error': 'Wrong username and/or password'}
print (data)
return HttpResponse(json.dumps(data), mimetype='application/json')
# Request method is not POST or one of username or password is missing
return render_to_response('accounts/login.html', RequestContext(request))
Ajax調用:POST(又是如何登陸認證用戶)
$('#signIn_1').click(function (e) {
var username = $.trim($('#un_1').val());
var password = $.trim($('#pw_1').val());
$.ajax({
url : "{% 'login' %}",
type : 'POST',
data : {
'username' : username,
'password' : password
},
dataType : 'json',
success : function (data) {
if (data != null && data == "success") {
window.location = '/'
}
else {
$('#signIn_1').append(data);
alert(data);
}
}
})
});
})(jQuery);
的login.html
<div class="form-main">
<form method="POST" action="{% url 'login' %}">{% csrf_token %}
<div class="form-group">
<input type="text" id="un_1" class="form-control" placeholder="username" required="required">
<input type="password" id="pw_1" class="form-control" placeholder="password" required="required">
</div>
<button id="signIn_1" type="submit" class="btn btn-block signin">Sign In</button>
</form>
<div id="message"></div>
</div>
你爲什麼要這樣做'login(request,user)'? –
我想附加到當前會話。這是通過login()函數完成的。 – lovethesky