This commit is contained in:
@@ -231,12 +231,15 @@ class DingtalkAuthService:
|
||||
raise Exception("无法获取钉钉用户ID")
|
||||
|
||||
# 3. 根据dingtalk_id查找系统用户
|
||||
logger.info(f"开始查找用户,钉钉userid: {dingtalk_userid}")
|
||||
user = await self.user_service.get_by_dingtalk_id(dingtalk_userid)
|
||||
|
||||
if not user:
|
||||
logger.info(f"通过dingtalk_id未找到用户,尝试手机号匹配")
|
||||
# 尝试通过手机号匹配
|
||||
user_detail = await self.get_user_detail(tenant_id, dingtalk_userid)
|
||||
mobile = user_detail.get("mobile")
|
||||
logger.info(f"获取到钉钉用户手机号: {mobile}")
|
||||
|
||||
if mobile:
|
||||
user = await self.user_service.get_by_phone(mobile)
|
||||
@@ -245,8 +248,13 @@ class DingtalkAuthService:
|
||||
user.dingtalk_id = dingtalk_userid
|
||||
await self.db.commit()
|
||||
logger.info(f"通过手机号匹配成功,已绑定dingtalk_id: {dingtalk_userid}")
|
||||
else:
|
||||
logger.warning(f"通过手机号 {mobile} 也未找到用户")
|
||||
else:
|
||||
logger.warning("无法获取钉钉用户手机号")
|
||||
|
||||
if not user:
|
||||
logger.error(f"钉钉登录失败:dingtalk_userid={dingtalk_userid}, 未找到对应用户")
|
||||
raise Exception("未找到对应的系统用户,请联系管理员")
|
||||
|
||||
if not user.is_active:
|
||||
|
||||
Reference in New Issue
Block a user