亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

沒有密碼的身份驗證 Django

沒有密碼的身份驗證 Django

幕布斯6054654 2022-11-09 17:06:21
正如標題所述,我正在嘗試驗證沒有密碼的用戶。我已經使用過這個:django authentication without a password來解決我的應用程序(在 Django 2.0 上)的問題,但我想在另一個應用程序中做同樣的事情,但它在 Django 2.1 上。當我執行相同的實現時,我的自定義身份驗證功能永遠不會被調用。因此它不起作用。auth_backend.py 中的當前設置:from django.contrib.auth.backends import ModelBackendfrom django.contrib.auth.models import Userclass PasswordlessAuthBackend(ModelBackend):    """Log in to Django without providing a password.    """    def authenticate(self, username=None):        try:            return User.objects.get(username=username)        except User.DoesNotExist:            return None    def get_user(self, user_id):        try:            return User.objects.get(pk=user_id)        except User.DoesNotExist:            return None在 settings.py 中設置:AUTHENTICATION_BACKENDS = [# auth_backend.py implementing Class PasswordlessAuthBackend inside yourapp folder    'yourapp.auth_backend.PasswordlessAuthBackend', # Default authentication of Django    'django.contrib.auth.backends.ModelBackend',]但是當我嘗試我的觀點時user = authenticate(username=user.username)它永遠不會達到我的自定義身份驗證方法。任何和所有的幫助表示贊賞!
查看完整描述

3 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

所以我通過這里的文件解決了我自己的問題:https ://docs.djangoproject.com/en/2.1/topics/auth/customizing/

我所要做的就是 auth_backend.py 中的 authetnicate 函數

def authenticate(self, username=None):

def authenticate(self, request, username=None):

在文檔中它說您還可以將類聲明更改為不包含 ModelBackend,但它可以以任何方式工作。


查看完整回答
反對 回復 2022-11-09
?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

您可以嘗試避免使用默認后端嗎?


改變


AUTHENTICATION_BACKENDS = [

# auth_backend.py implementing Class PasswordlessAuthBackend inside yourapp folder

    'yourapp.auth_backend.PasswordlessAuthBackend', 

# Default authentication of Django

    'django.contrib.auth.backends.ModelBackend',

]


AUTHENTICATION_BACKENDS = [

# auth_backend.py implementing Class PasswordlessAuthBackend inside yourapp folder

    'yourapp.auth_backend.PasswordlessAuthBackend', 

]


查看完整回答
反對 回復 2022-11-09
?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

您在 settings.py 中的身份驗證后端路徑無效

yourapp.auth_backend.YourAuth

應該

yourapp.auth_backend.PasswordlessAuthBackend


查看完整回答
反對 回復 2022-11-09
  • 3 回答
  • 0 關注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號