django登入認證錯誤

2022-06-23 20:24:10 字數 1368 閱讀 4149

def register(request):

if request.method == '

post':

username = request.post.get('

username')

password = request.post.get('

password')

print(username,password)

if user.objects.filter(username=username):

user_status[

'status

'] =false

user_status[

'msg

'] = '

請更換使用者名稱!

'return

httpresponse(json.dumps(user_status))

elif username == '' or password== ''

: user_status[

'status

'] =false

user_status[

'msg

'] = '

使用者名稱和密碼不能為空!

'else

: user.objects.create_user(username=username,password=password)

user_status[

'status

'] =true

user_status[

'msg

'] = '

註冊成功!

'return httpresponse(json.dumps(user_status))

使用auth.authenticate(username= username,passowrd=passowrd),這個使用者認證時候,明明資料庫中有記錄,但是返回就none

在配置註冊使用者的時候使用了user.objects.create('username=username,password=password)

1.並沒有新增到在auth_user(django自帶的表)中,而是放進了通過modely對映生成的表,從而導致auth.authenticate()根本查不到響應的資料

2.插入資料使用者名稱密碼時應該用user.objects.create_user(username=username,password=password),這個方法會把密碼生成雜湊值,插進資料庫,而不能用user.objects.create(。。。。),這樣插進去的資料密碼是明文

正確用法:user.objects.create_user(username=username,password=password)