fix: 修改微信用户登录默认token时间,改为不活跃7天,超时30天。
This commit is contained in:
@@ -93,12 +93,31 @@ public class WechatAuthStrategy implements IAuthStrategy {
|
|||||||
loginUser.setDeviceType(client.getDeviceType());
|
loginUser.setDeviceType(client.getDeviceType());
|
||||||
|
|
||||||
// 4. 配置登录参数
|
// 4. 配置登录参数
|
||||||
|
// 微信小程序用户:设置更长的 token 有效期,避免频繁过期重新登录
|
||||||
|
// - timeout: token 绝对有效期(默认30天)
|
||||||
|
// - activeTimeout: 活跃超时时间(默认7天),用户7天不活跃才过期
|
||||||
|
// 优先使用 client 配置的值,如果配置不合理(太短)则使用默认的长效配置
|
||||||
SaLoginParameter model = new SaLoginParameter();
|
SaLoginParameter model = new SaLoginParameter();
|
||||||
model.setDeviceType(client.getDeviceType());
|
model.setDeviceType(client.getDeviceType());
|
||||||
model.setTimeout(client.getTimeout());
|
// 微信小程序默认配置:绝对有效期30天(2592000秒),活跃超时7天(604800秒)
|
||||||
model.setActiveTimeout(client.getActiveTimeout());
|
long defaultTimeout = 2592000L; // 30天
|
||||||
|
long defaultActiveTimeout = 604800L; // 7天
|
||||||
|
// 如果 client 配置的超时时间太短(小于1天),使用默认的长效配置
|
||||||
|
Long timeout = client.getTimeout();
|
||||||
|
Long activeTimeout = client.getActiveTimeout();
|
||||||
|
if (timeout == null || timeout < 86400) { // 小于1天(86400秒)
|
||||||
|
timeout = defaultTimeout;
|
||||||
|
}
|
||||||
|
if (activeTimeout == null || activeTimeout < 86400) { // 小于1天
|
||||||
|
activeTimeout = defaultActiveTimeout;
|
||||||
|
}
|
||||||
|
model.setTimeout(timeout);
|
||||||
|
model.setActiveTimeout(activeTimeout);
|
||||||
model.setExtra(LoginHelper.CLIENT_KEY, client.getClientId());
|
model.setExtra(LoginHelper.CLIENT_KEY, client.getClientId());
|
||||||
|
|
||||||
|
log.info("微信登录token配置: clientId={}, timeout={}秒({}天), activeTimeout={}秒({}天)",
|
||||||
|
client.getClientId(), timeout, timeout / 86400, activeTimeout, activeTimeout / 86400);
|
||||||
|
|
||||||
// 5. 执行登录,生成 token
|
// 5. 执行登录,生成 token
|
||||||
LoginHelper.login(loginUser, model);
|
LoginHelper.login(loginUser, model);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user