This commit is contained in:
root 2025-07-13 11:23:46 +08:00
parent c6bd87f852
commit d9e0e2e791
2 changed files with 31 additions and 16 deletions

View File

@ -35,11 +35,12 @@ class AuthAPI:
"""
try:
# 创建注册请求对象
display_name = data.get("display_name", "") or ""
request = RegisterRequest(
username=data.get("username", "").strip(),
email=data.get("email", "").strip(),
password=data.get("password", ""),
display_name=data.get("display_name", "").strip() or None
display_name=display_name.strip() or None
)
# 执行注册

View File

@ -161,6 +161,20 @@ PostgreSQL 驱动 psycopg2 未安装。请安装:
ADD COLUMN avatar_url TEXT DEFAULT ''
""")
# 检查 last_login 字段是否存在
cursor.execute("""
SELECT column_name
FROM information_schema.columns
WHERE table_name = 'users' AND column_name = 'last_login'
""")
if not cursor.fetchone():
logger.info("Adding last_login column to users table")
cursor.execute("""
ALTER TABLE users
ADD COLUMN last_login TIMESTAMP
""")
except Exception as e:
logger.error(f"Failed to migrate user table: {e}")
raise e
@ -251,12 +265,12 @@ PostgreSQL 驱动 psycopg2 未安装。请安装:
'username': row['username'],
'email': row['email'],
'password_hash': row['password_hash'],
'display_name': row['display_name'],
'avatar_url': row['avatar_url'],
'display_name': row.get('display_name', row['username']),
'avatar_url': row.get('avatar_url', ''),
'is_active': row['is_active'],
'last_login': row['last_login'].isoformat() if row['last_login'] else None,
'created_at': row['created_at'].isoformat() if row['created_at'] else None,
'updated_at': row['updated_at'].isoformat() if row['updated_at'] else None
'last_login': row.get('last_login').isoformat() if row.get('last_login') else None,
'created_at': row.get('created_at').isoformat() if row.get('created_at') else None,
'updated_at': row.get('updated_at').isoformat() if row.get('updated_at') else None
}
return None
@ -286,12 +300,12 @@ PostgreSQL 驱动 psycopg2 未安装。请安装:
'username': row['username'],
'email': row['email'],
'password_hash': row['password_hash'],
'display_name': row['display_name'],
'avatar_url': row['avatar_url'],
'display_name': row.get('display_name', row['username']),
'avatar_url': row.get('avatar_url', ''),
'is_active': row['is_active'],
'last_login': row['last_login'].isoformat() if row['last_login'] else None,
'created_at': row['created_at'].isoformat() if row['created_at'] else None,
'updated_at': row['updated_at'].isoformat() if row['updated_at'] else None
'last_login': row.get('last_login').isoformat() if row.get('last_login') else None,
'created_at': row.get('created_at').isoformat() if row.get('created_at') else None,
'updated_at': row.get('updated_at').isoformat() if row.get('updated_at') else None
}
return None
@ -321,12 +335,12 @@ PostgreSQL 驱动 psycopg2 未安装。请安装:
'username': row['username'],
'email': row['email'],
'password_hash': row['password_hash'],
'display_name': row['display_name'],
'avatar_url': row['avatar_url'],
'display_name': row.get('display_name', row['username']),
'avatar_url': row.get('avatar_url', ''),
'is_active': row['is_active'],
'last_login': row['last_login'].isoformat() if row['last_login'] else None,
'created_at': row['created_at'].isoformat() if row['created_at'] else None,
'updated_at': row['updated_at'].isoformat() if row['updated_at'] else None
'last_login': row.get('last_login').isoformat() if row.get('last_login') else None,
'created_at': row.get('created_at').isoformat() if row.get('created_at') else None,
'updated_at': row.get('updated_at').isoformat() if row.get('updated_at') else None
}
return None