This commit is contained in:
@@ -1136,16 +1136,17 @@ def wechat_login(request):
|
||||
|
||||
else:
|
||||
# 【新建场景】: 都不存在 -> 创建新用户
|
||||
user = WeChatUser.objects.create(openid=openid)
|
||||
if phone_number:
|
||||
user = WeChatUser.objects.create(openid=openid)
|
||||
user.phone_number = phone_number
|
||||
user.save()
|
||||
else:
|
||||
# 如果没有手机号(静默登录),不自动创建新用户
|
||||
print(f"未注册用户尝试静默登录: OpenID={openid}")
|
||||
pass
|
||||
|
||||
# 统一更新会话信息 (确保 user 对象是最新的)
|
||||
# 重新获取对象以防状态不一致 (可选,但推荐)
|
||||
# user.refresh_from_db()
|
||||
|
||||
if user.openid == openid:
|
||||
# 统一更新会话信息 (确保 user 对象存在)
|
||||
if user and user.openid == openid:
|
||||
user.session_key = session_key
|
||||
user.unionid = unionid
|
||||
|
||||
@@ -1189,7 +1190,8 @@ def wechat_login(request):
|
||||
|
||||
# 生成 Token
|
||||
if not user:
|
||||
return Response({'error': 'Login failed: User not created'}, status=500)
|
||||
# 用户未注册且未提供手机号
|
||||
return Response({'error': 'User not registered', 'code': 'USER_NOT_FOUND'}, status=404)
|
||||
|
||||
signer = TimestampSigner()
|
||||
token = signer.sign(user.openid)
|
||||
|
||||
Reference in New Issue
Block a user