[英]login issue for imported users in django
我有 2 个 django 应用程序,我想在执行此操作时将带有密码的用户导入另一个应用程序,我有登录导入用户无法登录的问题注意:我有自定义用户 model 这 2 个应用程序具有相同的 SECRET_KEY,这是我的登录代码
GetDomain = Domains.objects.filter(domain=get_domain(HTTP_HOST=request.META['HTTP_HOST'])).first()
Email = request.POST.get('mail', None)
raw_password = request.POST.get('pass', None)
recaptcha_response = request.POST.get('g-recaptcha-response', None)
if Email is None:
return HttpResponse(ajax_result(Code=200, message='ایمیل خالی است'))
if raw_password is None:
return HttpResponse(ajax_result(Code=200, message='پسورد خالی است'))
if recaptcha_response is None:
return HttpResponse(ajax_result(Code=200, message='کد امنیتی را وارد کنید'))
GetUser = User.objects.filter(email=Email).first()
if GetUser is not None and GetUser.is_active:
if GetUser.aff != GetDomain.UseBy.username:
return HttpResponse(ajax_result(Code=200, message='کاربر یافت نشد'))
if RecaptchaValidator(recaptcha_response):
if not GetUser.is_superuser and not GetUser.is_staff:
DeleteLastSessions(GetUser)
user = authenticate(username=GetUser.username, password=raw_password)
try:
login(request, user)
except AttributeError:
return HttpResponse(ajax_result(message='اطلاعات ورود اشتباه است'))
GetUser.Browser = request.META['HTTP_USER_AGENT']
GetUser.IsLogin = True
GetUser.LastLoginIP = GetIP(request)
GetUser.save()
if GetUser.is_superuser or GetUser.is_staff:
SubmitLog(user=request.user, Part='ورود به پنل', Number=None, Information=None,
IP=GetIP(request))
threading.Thread(target=WriteUserExtraInformation, args=(request, GetUser,), name='WI').start()
if GetUser.NeedVerify:
Context = '{"result" : "ok", "data": {"url":"/tickets/send?verify=1"}}'
else:
if 'next' in request.GET.keys():
Context = '{"result" : "ok", "data": {"url":"' + request.GET['next'] + '"}}'
else:
Context = '{"result" : "ok", "data": {"url":"/profile/"}}'
response = HttpResponse(Context)
response.set_cookie('app', 'True', secure=True)
return response
else:
return HttpResponse(ajax_result(message='کد امنیتی درست وارد نشده'))
else:
return HttpResponse(ajax_result(message='اطلاعات ورود اشتباه است'))
导入用户 hash 密码为:pbkdf2_sha256$216000$E85jHHVRM2dF$hUSxY0ih7ijkLBpey6OuyitF5y5LuuMKWdcV4zwE6Zk=
新用户 hash 密码为:pbkdf2_sha256$320000$G8JV9BEtb5XbMyZmjcTBir$5jWXFmtE9hOKTkpPf+bvSXpa/LRa+b0c1OY3QryFP0Q=
这是因为 django 旧版本中 PBKDF2PasswordHasher 的迭代是:216000 而新版本的迭代是:320000 如果迭代是 216000,我会更改我的代码重置密码并完成!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.