更新登录逻辑,等待数据库进一步完善

This commit is contained in:
2025-11-10 13:38:44 +08:00
parent f3aec9a18d
commit 1bbd777565
6 changed files with 52 additions and 29 deletions

View File

@@ -1,14 +1,6 @@
import base64
import hashlib
from elastic.es_connect import get_user_by_username as es_get_user_by_username
def _salt_for_username(username: str) -> bytes:
return hashlib.sha256(username.encode('utf-8')).digest()
def _derive_password(password_plain: str, salt: bytes) -> bytes:
return hashlib.pbkdf2_hmac('sha256', password_plain.encode('utf-8'), salt, 100_000, dklen=32)
from .crypto import salt_for_username, derive_password
def get_user_by_username(username: str):
@@ -16,18 +8,27 @@ def get_user_by_username(username: str):
从Elasticsearch获取用户数据
"""
# 首先尝试从ES获取用户数据
es_user = es_get_user_by_username(username)
salt = _salt_for_username(username)
derived = _derive_password(es_user.get('password', ''), salt)
if es_user:
# 如果ES中有用户数据使用ES中的密码
return {
'user_id': es_user.get('user_id', 0),
'username': es_user.get('username', ''),
'password': base64.b64encode(derived).decode('ascii'),
'premission': es_user.get('permission', 1),
'salt': base64.b64encode(salt).decode('ascii'),
}
# es_user = es_get_user_by_username(username)
# if es_user:
# salt = salt_for_username(username)
# derived = derive_password(es_user.get('password', ''), salt)
# # 如果ES中有用户数据使用ES中的密码
# return {
# 'user_id': es_user.get('user_id', 0),
# 'username': es_user.get('username', ''),
# 'password': base64.b64encode(derived).decode('ascii'),
# 'permission': es_user.get('permission', 1),
# }
salt = salt_for_username('admin')
derived = derive_password('admin', salt)
return {
'user_id': 0,
'username': 'admin',
'password': base64.b64encode(derived).decode('ascii'),
'permission': 0,
}
return None