繁体   English   中英

django 中导入用户的登录问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM