91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django2.2.6中check_password驗證失敗的解決辦法

發布時間:2021-08-26 17:53:23 來源:億速云 閱讀:174 作者:chen 欄目:大數據

本篇內容介紹了“django2.2.6中check_password驗證失敗的解決辦法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

python3.6, django 2.2.6 AUTHENTICATION_BACKENDS 里添加自定義認證 CustomBackend(郵箱、手機號等),

用 python manage.py createsuperuser 創建的超級管理員登錄時密碼一直驗證失敗(False)

# .\apps\users\backends\other.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
@author: yinzhuoqun
@site: http://zhuoqun.info/
@email: yin@zhuoqun.info
@time: 2019/10/16 18:06
"""
from django.contrib.auth import get_user_model
from django.contrib.auth.backends import ModelBackend
from django.db.models import Q
from django.contrib.auth.hashers import check_password
from apps.users.models import UserProfile

User = get_user_model()


# 用戶名之外的唯一值字段也能用來登錄,setting 里要有對應的配置 AUTHENTICATION_BACKENDS
class CustomBackend(ModelBackend):
    def authenticate(self, request, username=None, password=None, **kwargs):
        try:
            # 郵箱、用戶名、手機號碼 登錄
            user = UserProfile.objects.get(Q(username=username) | Q(email=username) | Q(phone=username))
            # user_check_password = user.check_password(password)
            user_check_password = check_password(password, user.password)
            if user_check_password:
                return user
        except User.DoesNotExist:
            return None

# settings.py

AUTH_USER_MODEL = 'users.UserProfile'  # 重載系統的用戶,讓 UserProfile 生效

# AUTH 方法(支持郵箱、手機號等登錄), 驗證從上到下
AUTHENTICATION_BACKENDS = (
    'apps.users.backends.other.CustomBackend',
    # 'social_core.backends.weibo.WeiboOAuth3',
    # 'social_core.backends.qq.QQOAuth3',
    # 'social_core.backends.weixin.WeixinOAuth3',
    # 'social_core.backends.github.GithubOAuth3',
    # 'social_core.backends.gitlab.GitLabOAuth3',
    # 'django.contrib.auth.backends.ModelBackend',
)

刪庫重建無數次都不行,突然想到用 shell 重新設置密碼一次,果然就登錄上去了。

(tracbug) .\tracbug>python manage.py shell
Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.contrib.auth import get_user_model
>>> User = get_user_model()
>>> user = User.objects.get(username="yinzhuoqun")
>>> user
<UserProfile: Yinzhuoqun>
>>> user.username
'yinzhuoqun'
>>> user.set_password("xxxxxxxx")
>>> user.save()

“django2.2.6中check_password驗證失敗的解決辦法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广昌县| 西平县| 霍山县| 鸡西市| 道孚县| 北川| 商南县| 辉南县| 尼勒克县| 潮州市| 湾仔区| 石景山区| 泾阳县| 怀来县| 肇源县| 郸城县| 双流县| 连州市| 乐山市| 保靖县| 浦城县| 霍邱县| 黄骅市| 鄂托克旗| 诏安县| 克东县| 长子县| 中宁县| 江孜县| 七台河市| 灵台县| 本溪市| 江华| 江达县| 钟祥市| 周至县| 通许县| 鄂伦春自治旗| 阜平县| 青田县| 江达县|