更新微信登录。

This commit is contained in:
aaron 2025-01-22 15:38:11 +08:00
parent 8cf7a53e40
commit e073a5ed72
3 changed files with 22 additions and 5 deletions

View File

@ -98,7 +98,7 @@ async def login(
user_code = generate_user_code(db) user_code = generate_user_code(db)
user = UserDB( user = UserDB(
nickname=f"user_{phone[-4:]}", nickname=f"蜂友{phone[-4:]}",
phone=phone, phone=phone,
user_code=user_code, user_code=user_code,
referral_code=user_login.referral_code, referral_code=user_login.referral_code,
@ -166,7 +166,7 @@ async def phone_login(
user_code = generate_user_code(db) user_code = generate_user_code(db)
user = UserDB( user = UserDB(
nickname=f"user_{request.phone[-4:]}", nickname=f"蜂友{request.phone[-4:]}",
phone=request.phone, phone=request.phone,
user_code=user_code, user_code=user_code,
referral_code=request.referral_code, referral_code=request.referral_code,

View File

@ -40,10 +40,15 @@ async def wechat_phone_login(
# 获取用户手机号 # 获取用户手机号
phone_info = await wechat.get_phone_number(request.phone_code) phone_info = await wechat.get_phone_number(request.phone_code)
if not phone_info or not phone_info.get('phone_number'): if not phone_info:
return error_response(code=400, message="获取手机号失败") return error_response(code=400, message="获取手机号失败")
# 打印调试信息
print(f"获取到的手机号信息: {phone_info}")
phone = phone_info['phone_number'] phone = phone_info['phone_number']
if not phone:
return error_response(code=400, message="手机号为空")
# 查找或创建用户 # 查找或创建用户
user = db.query(UserDB).filter(UserDB.phone == phone).first() user = db.query(UserDB).filter(UserDB.phone == phone).first()
@ -52,7 +57,7 @@ async def wechat_phone_login(
user_code = generate_user_code(db) user_code = generate_user_code(db)
user = UserDB( user = UserDB(
nickname=f"user_{phone[-4:]}", nickname=f"蜂友{phone[-4:]}",
phone=phone, phone=phone,
user_code=user_code, user_code=user_code,
referral_code=request.referral_code, referral_code=request.referral_code,

View File

@ -59,10 +59,22 @@ class WeChatClient:
except json.JSONDecodeError: except json.JSONDecodeError:
raise Exception(f"解析微信返回数据失败: {text}") raise Exception(f"解析微信返回数据失败: {text}")
# 打印调试信息
print(f"微信返回数据: {result}")
if result.get("errcode", 0) != 0: if result.get("errcode", 0) != 0:
raise Exception(result.get("errmsg", "获取手机号失败")) raise Exception(result.get("errmsg", "获取手机号失败"))
return result.get("phone_info", {}) # 正确获取 phone_info
phone_info = result.get("phone_info")
if not phone_info:
raise Exception("未获取到手机号信息")
return {
"phone_number": phone_info.get("phoneNumber"),
"pure_phone_number": phone_info.get("purePhoneNumber"),
"country_code": phone_info.get("countryCode"),
}
async def code2session(self, code: str) -> dict: async def code2session(self, code: str) -> dict: