bug修改

This commit is contained in:
周鹏 committed 2026-09-06 09:25:10 +08:00
1 parent 1024045a92
commit a9237a1b38
2 files changed
+31 -1

No files matched your search

@@ -0,0 +1,22 @@
-- ----------------------------
-- 航空账号专用 OAuth2 客户端
-- 用途:airline-login 签发的 Token 归属 airline 客户端,access/refresh token 有效期极长,
-- App 端登录一次即可长期使用,无需续期;每次打开 App 仅通过 /airline-check
-- 校验账号状态/有效期/设备绑定(见 MemberAuthServiceImpl#createTokenAfterAirlineLoginSuccess)。
-- 注意:不影响 default 客户端(交友 App 会员仍为 30 分钟 accessToken + 30 天 refreshToken)。
-- 部署:执行本脚本后再部署新 yudao-server.jar,否则 airline-login 会报"客户端不存在"。
-- ----------------------------
INSERT INTO `system_oauth2_client`
(`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`,
`access_token_validity_seconds`, `refresh_token_validity_seconds`,
`redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`,
`authorities`, `resource_ids`, `additional_information`,
`creator`, `create_time`, `updater`, `update_time`, `deleted`)
SELECT 43, 'airline', 'airline123', '航空App专用客户端', '', '南航/东航/海航 App 专用,Token 长期有效', 0,
2147483647, 2147483647,
'[]', '["password","refresh_token"]', '[]', '[]',
'[]', '[]', '{}',
'1', NOW(), '1', NOW(), b'0'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `system_oauth2_client` WHERE `client_id` = 'airline' AND `deleted` = b'0');
@@ -59,6 +59,12 @@ import static cn.iocoder.yudao.module.member.enums.MemberErrorCode.*;
@Slf4j
public class MemberAuthServiceImpl implements MemberAuthService {
/**
* 航空账号专用 OAuth2 客户端编号(system_oauth2_client 表需存在该记录,
* access/refresh token 有效期设置极长,App 登录一次即可长期使用)
*/
private static final String CLIENT_ID_AIRLINE = "airline";
@Resource
private MemberUserService userService;
@Resource
@@ -438,9 +444,11 @@ public class MemberAuthServiceImpl implements MemberAuthService {
reqDTO.setResult(LoginResultEnum.SUCCESS.getResult());
loginLogApi.createLoginLog(reqDTO);
// 创建 Token 令牌(userId 使用航空账号自身编号)
// 使用独立的 airline 客户端:access/refresh token 有效期极长(见 system_oauth2_client 表),
// App 端登录一次即可,无需续期;每次打开 App 仅通过 airline-check 校验账号状态/有效期/设备绑定
OAuth2AccessTokenRespDTO accessTokenRespDTO = oauth2TokenApi.createAccessToken(new OAuth2AccessTokenCreateReqDTO()
.setUserId(account.getId()).setUserType(getUserType().getValue())
.setClientId(OAuth2ClientConstants.CLIENT_ID_DEFAULT));
.setClientId(CLIENT_ID_AIRLINE));
return AuthConvert.INSTANCE.convert(accessTokenRespDTO, null);
}