def login(request): next_url = request.GET.get('next', None) crypt = CryptPwd() if request.method == 'GET': if request.session.get('username') and request.session.get('lock'): del request.session['lock'] del request.session['username'] return render(request, 'login.html') elif request.method == 'POST': print('这是post请求') username = request.POST.get('username') password = request.POST.get('password') de_password = crypt.de_js_encrypt(password) login_ip = request.META.get('REMOTE_ADDR') # code = request.POST.get('code') remember_me = request.POST.get('remember_me') # if code.lower() != request.session.get('check_code', 'error').lower(): # return render(request, 'login.html', {"login_error_info": "验证码错误,请重新输入!"}) user = auth.authenticate(username=username, password=de_password) print(user) if user and user.is_active: auth.login(request, user) request.session['username'] = username if remember_me: request.session.set_expiry(60 * 60 * 24 * 7) else: request.session.set_expiry(0) UserProfile.objects.filter(username=username).update( login_status=0) # get_login_info.delay(login_user=username, login_ip=login_ip, login_status='登录成功') print('未知1') if next_url: print('未知2') if next_url == '/' and not user.is_superuser: return HttpResponseRedirect('/users/user_center/', locals()) print('未知3') return HttpResponseRedirect(next_url, locals()) else: print('未知4') return HttpResponseRedirect('/users/user_center/', locals()) elif user is None: get_login_info.delay(login_user=username, login_ip=login_ip, login_status='登录失败') return render(request, 'login.html', {"login_error_info": "输入的用户名或密码错误!"}) elif not user.is_active: return render(request, 'login.html', {"login_error_info": "账户被禁用!"}) else: return render(request, 'login.html', {"login_error_info": "未知异常,请联系管理员!"})
def lock_screen(request): crypt = CryptPwd() if request.method == 'GET': user = UserProfile.objects.get(username=request.user) UserProfile.objects.filter(username=request.user).update( login_status=3 ) request.session['lock'] = 'lock' if 'lock_screen' not in request.META.get('HTTP_REFERER'): request.session['referer_url'] = request.META.get('HTTP_REFERER') public_key = crypt.gen_pri_pub_key return render(request, 'lockscreen.html', locals()) elif request.method == 'POST': de_password = crypt.de_js_encrypt(request.POST.get('pwd')) user = auth.authenticate(username=request.session['username'], password=de_password) if user: del request.session['lock'] referer_url = request.session.get('referer_url') return redirect(referer_url) return render(request, 'lockscreen.html', {"login_error_info": "密码错误!请确认输入的密码是否正确!", 'public_key': crypt.gen_pri_pub_key})