mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-21 02:25:56 +08:00
update 更新 sys_client 表字段以及 sql, 增加设备类型 device_type, activity_timeout 改为 active_timeout ;
refactor 重构 IAuthStrategy#login 增加方法参数 client ; refactor 重构 LoginHelper#loginByDevice 增加方法参数 deviceType, activeTimeout, timeout, 修改相应方法调用 ; delete 删除 SysLoginService 合并多余的策略校验方法 ;
This commit is contained in:
parent
4185aafbb9
commit
ad287e3d91
@ -83,7 +83,7 @@ public class AuthController {
|
||||
// 校验租户
|
||||
loginService.checkTenant(loginBody.getTenantId());
|
||||
// 登录
|
||||
return R.ok(IAuthStrategy.login(loginBody));
|
||||
return R.ok(IAuthStrategy.login(loginBody, client));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -4,6 +4,7 @@ package org.dromara.web.service;
|
||||
import org.dromara.common.core.domain.model.LoginBody;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.SpringUtils;
|
||||
import org.dromara.system.domain.SysClient;
|
||||
import org.dromara.web.domain.vo.LoginVo;
|
||||
|
||||
/**
|
||||
@ -18,7 +19,7 @@ public interface IAuthStrategy {
|
||||
/**
|
||||
* 登录
|
||||
*/
|
||||
static LoginVo login(LoginBody loginBody) {
|
||||
static LoginVo login(LoginBody loginBody, SysClient client) {
|
||||
// 授权类型和客户端id
|
||||
String clientId = loginBody.getClientId();
|
||||
String grantType = loginBody.getGrantType();
|
||||
@ -28,7 +29,7 @@ public interface IAuthStrategy {
|
||||
}
|
||||
IAuthStrategy instance = SpringUtils.getBean(beanName);
|
||||
instance.validate(loginBody);
|
||||
return instance.login(clientId, loginBody);
|
||||
return instance.login(clientId, loginBody, client);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -37,8 +38,8 @@ public interface IAuthStrategy {
|
||||
void validate(LoginBody loginBody);
|
||||
|
||||
/**
|
||||
* 参数校验
|
||||
* 登录
|
||||
*/
|
||||
LoginVo login(String clientId, LoginBody loginBody);
|
||||
LoginVo login(String clientId, LoginBody loginBody, SysClient client);
|
||||
|
||||
}
|
||||
|
||||
@ -19,8 +19,6 @@ import org.dromara.common.core.enums.DeviceType;
|
||||
import org.dromara.common.core.enums.LoginType;
|
||||
import org.dromara.common.core.enums.TenantStatus;
|
||||
import org.dromara.common.core.enums.UserStatus;
|
||||
import org.dromara.common.core.exception.user.CaptchaException;
|
||||
import org.dromara.common.core.exception.user.CaptchaExpireException;
|
||||
import org.dromara.common.core.exception.user.UserException;
|
||||
import org.dromara.common.core.utils.*;
|
||||
import org.dromara.common.log.event.LogininforEvent;
|
||||
@ -33,7 +31,6 @@ import org.dromara.system.domain.bo.SysSocialBo;
|
||||
import org.dromara.system.domain.vo.SysSocialVo;
|
||||
import org.dromara.system.domain.vo.SysTenantVo;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.system.mapper.SysClientMapper;
|
||||
import org.dromara.system.mapper.SysUserMapper;
|
||||
import org.dromara.system.service.ISysPermissionService;
|
||||
import org.dromara.system.service.ISysSocialService;
|
||||
@ -63,11 +60,16 @@ public class SysLoginService {
|
||||
@Value("${user.password.lockTime}")
|
||||
private Integer lockTime;
|
||||
|
||||
@Value("sa-token.active-timeout")
|
||||
private Long activeTimeout;
|
||||
|
||||
@Value("sa-token.timeout")
|
||||
private Long timeout;
|
||||
|
||||
private final ISysTenantService tenantService;
|
||||
private final ISysPermissionService permissionService;
|
||||
private final ISysSocialService sysSocialService;
|
||||
private final SysUserMapper userMapper;
|
||||
private final SysClientMapper clientMapper;
|
||||
|
||||
/**
|
||||
* 社交登录
|
||||
@ -121,7 +123,7 @@ public class SysLoginService {
|
||||
private R<String> loginAndRecord(String tenantId, String userName, AuthUser authUser) {
|
||||
checkTenant(tenantId);
|
||||
SysUserVo user = loadUserByUsername(tenantId, userName);
|
||||
LoginHelper.loginByDevice(buildLoginUser(user), DeviceType.SOCIAL);
|
||||
LoginHelper.loginByDevice(buildLoginUser(user), DeviceType.PC.getDevice(), activeTimeout, timeout);
|
||||
recordLogininfor(user.getTenantId(), userName, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
|
||||
recordLoginInfo(user.getUserId());
|
||||
return R.ok(StpUtil.getTokenValue());
|
||||
@ -161,50 +163,6 @@ public class SysLoginService {
|
||||
SpringUtils.context().publishEvent(logininforEvent);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验短信验证码
|
||||
*/
|
||||
private boolean validateSmsCode(String tenantId, String phonenumber, String smsCode) {
|
||||
String code = RedisUtils.getCacheObject(GlobalConstants.CAPTCHA_CODE_KEY + phonenumber);
|
||||
if (StringUtils.isBlank(code)) {
|
||||
recordLogininfor(tenantId, phonenumber, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"));
|
||||
throw new CaptchaExpireException();
|
||||
}
|
||||
return code.equals(smsCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验邮箱验证码
|
||||
*/
|
||||
private boolean validateEmailCode(String tenantId, String email, String emailCode) {
|
||||
String code = RedisUtils.getCacheObject(GlobalConstants.CAPTCHA_CODE_KEY + email);
|
||||
if (StringUtils.isBlank(code)) {
|
||||
recordLogininfor(tenantId, email, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"));
|
||||
throw new CaptchaExpireException();
|
||||
}
|
||||
return code.equals(emailCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验验证码
|
||||
*
|
||||
* @param username 用户名
|
||||
* @param code 验证码
|
||||
* @param uuid 唯一标识
|
||||
*/
|
||||
public void validateCaptcha(String tenantId, String username, String code, String uuid) {
|
||||
String verifyKey = GlobalConstants.CAPTCHA_CODE_KEY + StringUtils.defaultString(uuid, "");
|
||||
String captcha = RedisUtils.getCacheObject(verifyKey);
|
||||
RedisUtils.deleteObject(verifyKey);
|
||||
if (captcha == null) {
|
||||
recordLogininfor(tenantId, username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"));
|
||||
throw new CaptchaExpireException();
|
||||
}
|
||||
if (!code.equalsIgnoreCase(captcha)) {
|
||||
recordLogininfor(tenantId, username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"));
|
||||
throw new CaptchaException();
|
||||
}
|
||||
}
|
||||
|
||||
private SysUserVo loadUserByUsername(String tenantId, String username) {
|
||||
SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
||||
@ -224,56 +182,6 @@ public class SysLoginService {
|
||||
return userMapper.selectUserByUserName(username);
|
||||
}
|
||||
|
||||
private SysUserVo loadUserByPhonenumber(String tenantId, String phonenumber) {
|
||||
SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
||||
.select(SysUser::getPhonenumber, SysUser::getStatus)
|
||||
.eq(TenantHelper.isEnable(), SysUser::getTenantId, tenantId)
|
||||
.eq(SysUser::getPhonenumber, phonenumber));
|
||||
if (ObjectUtil.isNull(user)) {
|
||||
log.info("登录用户:{} 不存在.", phonenumber);
|
||||
throw new UserException("user.not.exists", phonenumber);
|
||||
} else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
|
||||
log.info("登录用户:{} 已被停用.", phonenumber);
|
||||
throw new UserException("user.blocked", phonenumber);
|
||||
}
|
||||
if (TenantHelper.isEnable()) {
|
||||
return userMapper.selectTenantUserByPhonenumber(phonenumber, tenantId);
|
||||
}
|
||||
return userMapper.selectUserByPhonenumber(phonenumber);
|
||||
}
|
||||
|
||||
private SysUserVo loadUserByEmail(String tenantId, String email) {
|
||||
SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
||||
.select(SysUser::getEmail, SysUser::getStatus)
|
||||
.eq(TenantHelper.isEnable(), SysUser::getTenantId, tenantId)
|
||||
.eq(SysUser::getEmail, email));
|
||||
if (ObjectUtil.isNull(user)) {
|
||||
log.info("登录用户:{} 不存在.", email);
|
||||
throw new UserException("user.not.exists", email);
|
||||
} else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
|
||||
log.info("登录用户:{} 已被停用.", email);
|
||||
throw new UserException("user.blocked", email);
|
||||
}
|
||||
if (TenantHelper.isEnable()) {
|
||||
return userMapper.selectTenantUserByEmail(email, tenantId);
|
||||
}
|
||||
return userMapper.selectUserByEmail(email);
|
||||
}
|
||||
|
||||
private SysUserVo loadUserByOpenid(String openid) {
|
||||
// 使用 openid 查询绑定用户 如未绑定用户 则根据业务自行处理 例如 创建默认用户
|
||||
// todo 自行实现 userService.selectUserByOpenid(openid);
|
||||
SysUserVo user = new SysUserVo();
|
||||
if (ObjectUtil.isNull(user)) {
|
||||
log.info("登录用户:{} 不存在.", openid);
|
||||
// todo 用户不存在 业务逻辑自行实现
|
||||
} else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
|
||||
log.info("登录用户:{} 已被停用.", openid);
|
||||
// todo 用户已被停用 业务逻辑自行实现
|
||||
}
|
||||
return user;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建登录用户
|
||||
*/
|
||||
|
||||
@ -9,7 +9,6 @@ import org.dromara.common.core.constant.Constants;
|
||||
import org.dromara.common.core.constant.GlobalConstants;
|
||||
import org.dromara.common.core.domain.model.LoginBody;
|
||||
import org.dromara.common.core.domain.model.LoginUser;
|
||||
import org.dromara.common.core.enums.DeviceType;
|
||||
import org.dromara.common.core.enums.LoginType;
|
||||
import org.dromara.common.core.enums.UserStatus;
|
||||
import org.dromara.common.core.exception.user.CaptchaExpireException;
|
||||
@ -21,6 +20,7 @@ import org.dromara.common.core.validate.auth.EmailGroup;
|
||||
import org.dromara.common.redis.utils.RedisUtils;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.common.tenant.helper.TenantHelper;
|
||||
import org.dromara.system.domain.SysClient;
|
||||
import org.dromara.system.domain.SysUser;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.system.mapper.SysUserMapper;
|
||||
@ -48,7 +48,7 @@ public class EmailAuthStrategy implements IAuthStrategy {
|
||||
}
|
||||
|
||||
@Override
|
||||
public LoginVo login(String clientId, LoginBody loginBody) {
|
||||
public LoginVo login(String clientId, LoginBody loginBody, SysClient client) {
|
||||
String tenantId = loginBody.getTenantId();
|
||||
String email = loginBody.getEmail();
|
||||
String emailCode = loginBody.getEmailCode();
|
||||
@ -60,7 +60,7 @@ public class EmailAuthStrategy implements IAuthStrategy {
|
||||
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
|
||||
LoginUser loginUser = loginService.buildLoginUser(user);
|
||||
// 生成token
|
||||
LoginHelper.loginByDevice(loginUser, DeviceType.APP);
|
||||
LoginHelper.loginByDevice(loginUser, client.getDeviceType(), client.getActiveTimeout(), client.getTimeout());
|
||||
|
||||
loginService.recordLogininfor(loginUser.getTenantId(), user.getUserName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
|
||||
loginService.recordLoginInfo(user.getUserId());
|
||||
|
||||
@ -10,7 +10,6 @@ import org.dromara.common.core.constant.Constants;
|
||||
import org.dromara.common.core.constant.GlobalConstants;
|
||||
import org.dromara.common.core.domain.model.LoginBody;
|
||||
import org.dromara.common.core.domain.model.LoginUser;
|
||||
import org.dromara.common.core.enums.DeviceType;
|
||||
import org.dromara.common.core.enums.LoginType;
|
||||
import org.dromara.common.core.enums.UserStatus;
|
||||
import org.dromara.common.core.exception.user.CaptchaException;
|
||||
@ -24,6 +23,7 @@ import org.dromara.common.redis.utils.RedisUtils;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.common.tenant.helper.TenantHelper;
|
||||
import org.dromara.common.web.config.properties.CaptchaProperties;
|
||||
import org.dromara.system.domain.SysClient;
|
||||
import org.dromara.system.domain.SysUser;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.system.mapper.SysUserMapper;
|
||||
@ -52,7 +52,7 @@ public class PasswordAuthStrategy implements IAuthStrategy {
|
||||
}
|
||||
|
||||
@Override
|
||||
public LoginVo login(String clientId, LoginBody loginBody) {
|
||||
public LoginVo login(String clientId, LoginBody loginBody, SysClient client) {
|
||||
String tenantId = loginBody.getTenantId();
|
||||
String username = loginBody.getUsername();
|
||||
String password = loginBody.getPassword();
|
||||
@ -70,7 +70,7 @@ public class PasswordAuthStrategy implements IAuthStrategy {
|
||||
// 此处可根据登录用户的数据不同 自行创建 loginUser
|
||||
LoginUser loginUser = loginService.buildLoginUser(user);
|
||||
// 生成token
|
||||
LoginHelper.loginByDevice(loginUser, DeviceType.PC);
|
||||
LoginHelper.loginByDevice(loginUser, client.getDeviceType(), client.getActiveTimeout(), client.getTimeout());
|
||||
|
||||
loginService.recordLogininfor(loginUser.getTenantId(), username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
|
||||
loginService.recordLoginInfo(user.getUserId());
|
||||
|
||||
@ -9,7 +9,6 @@ import org.dromara.common.core.constant.Constants;
|
||||
import org.dromara.common.core.constant.GlobalConstants;
|
||||
import org.dromara.common.core.domain.model.LoginBody;
|
||||
import org.dromara.common.core.domain.model.LoginUser;
|
||||
import org.dromara.common.core.enums.DeviceType;
|
||||
import org.dromara.common.core.enums.LoginType;
|
||||
import org.dromara.common.core.enums.UserStatus;
|
||||
import org.dromara.common.core.exception.user.CaptchaExpireException;
|
||||
@ -21,6 +20,7 @@ import org.dromara.common.core.validate.auth.SmsGroup;
|
||||
import org.dromara.common.redis.utils.RedisUtils;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.common.tenant.helper.TenantHelper;
|
||||
import org.dromara.system.domain.SysClient;
|
||||
import org.dromara.system.domain.SysUser;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.system.mapper.SysUserMapper;
|
||||
@ -48,7 +48,7 @@ public class SmsAuthStrategy implements IAuthStrategy {
|
||||
}
|
||||
|
||||
@Override
|
||||
public LoginVo login(String clientId, LoginBody loginBody) {
|
||||
public LoginVo login(String clientId, LoginBody loginBody, SysClient client) {
|
||||
String tenantId = loginBody.getTenantId();
|
||||
String phonenumber = loginBody.getPhonenumber();
|
||||
String smsCode = loginBody.getSmsCode();
|
||||
@ -60,7 +60,7 @@ public class SmsAuthStrategy implements IAuthStrategy {
|
||||
// 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
|
||||
LoginUser loginUser = loginService.buildLoginUser(user);
|
||||
// 生成token
|
||||
LoginHelper.loginByDevice(loginUser, DeviceType.APP);
|
||||
LoginHelper.loginByDevice(loginUser, client.getDeviceType(), client.getActiveTimeout(), client.getTimeout());
|
||||
|
||||
loginService.recordLogininfor(loginUser.getTenantId(), user.getUserName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
|
||||
loginService.recordLoginInfo(user.getUserId());
|
||||
|
||||
@ -7,12 +7,12 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.constant.Constants;
|
||||
import org.dromara.common.core.domain.model.LoginBody;
|
||||
import org.dromara.common.core.domain.model.XcxLoginUser;
|
||||
import org.dromara.common.core.enums.DeviceType;
|
||||
import org.dromara.common.core.enums.UserStatus;
|
||||
import org.dromara.common.core.utils.MessageUtils;
|
||||
import org.dromara.common.core.utils.ValidatorUtils;
|
||||
import org.dromara.common.core.validate.auth.WechatGroup;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.system.domain.SysClient;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.web.domain.vo.LoginVo;
|
||||
import org.dromara.web.service.IAuthStrategy;
|
||||
@ -37,7 +37,7 @@ public class XcxAuthStrategy implements IAuthStrategy {
|
||||
}
|
||||
|
||||
@Override
|
||||
public LoginVo login(String clientId, LoginBody loginBody) {
|
||||
public LoginVo login(String clientId, LoginBody loginBody, SysClient client) {
|
||||
// xcxCode 为 小程序调用 wx.login 授权后获取
|
||||
String xcxCode = loginBody.getXcxCode();
|
||||
// todo 以下自行实现
|
||||
@ -54,7 +54,7 @@ public class XcxAuthStrategy implements IAuthStrategy {
|
||||
loginUser.setUserType(user.getUserType());
|
||||
loginUser.setOpenid(openid);
|
||||
// 生成token
|
||||
LoginHelper.loginByDevice(loginUser, DeviceType.XCX);
|
||||
LoginHelper.loginByDevice(loginUser, client.getDeviceType(), client.getActiveTimeout(), client.getTimeout());
|
||||
|
||||
loginService.recordLogininfor(loginUser.getTenantId(), user.getUserName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
|
||||
loginService.recordLoginInfo(user.getUserId());
|
||||
|
||||
@ -10,10 +10,10 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import org.dromara.common.core.constant.TenantConstants;
|
||||
import org.dromara.common.core.constant.UserConstants;
|
||||
import org.dromara.common.core.domain.model.LoginUser;
|
||||
import org.dromara.common.core.enums.DeviceType;
|
||||
import org.dromara.common.core.enums.UserType;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@ -42,32 +42,30 @@ public class LoginHelper {
|
||||
* @param loginUser 登录用户信息
|
||||
*/
|
||||
public static void login(LoginUser loginUser) {
|
||||
loginByDevice(loginUser, null);
|
||||
loginByDevice(loginUser, null, 1800L, 604800L);
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录系统 基于 设备类型
|
||||
* 针对相同用户体系不同设备
|
||||
*
|
||||
* @param loginUser 登录用户信息
|
||||
* @param loginUser 登录用户信息
|
||||
* @param deviceType 设备类型
|
||||
* @param activeTimeout token活跃超时时间
|
||||
* @param timeout token固定超时时间
|
||||
*/
|
||||
public static void loginByDevice(LoginUser loginUser, DeviceType deviceType) {
|
||||
public static void loginByDevice(LoginUser loginUser, String deviceType, Long activeTimeout, Long timeout) {
|
||||
SaStorage storage = SaHolder.getStorage();
|
||||
storage.set(LOGIN_USER_KEY, loginUser);
|
||||
storage.set(TENANT_KEY, loginUser.getTenantId());
|
||||
storage.set(USER_KEY, loginUser.getUserId());
|
||||
SaLoginModel model = new SaLoginModel();
|
||||
if (ObjectUtil.isNotNull(deviceType)) {
|
||||
model.setDevice(deviceType.getDevice());
|
||||
if (StringUtils.isNotEmpty(deviceType)) {
|
||||
model.setDevice(deviceType);
|
||||
}
|
||||
// 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置
|
||||
// 例如: 后台用户30分钟过期 app用户1天过期
|
||||
// UserType userType = UserType.getUserType(loginUser.getUserType());
|
||||
// if (userType == UserType.SYS_USER) {
|
||||
// model.setTimeout(86400).setActiveTimeout(1800);
|
||||
// } else if (userType == UserType.APP_USER) {
|
||||
// model.setTimeout(86400).setActiveTimeout(1800);
|
||||
// }
|
||||
model.setTimeout(timeout).setActiveTimeout(activeTimeout);
|
||||
StpUtil.stpLogic.setLoginType(loginUser.getUserType())
|
||||
.login(loginUser.getLoginId(),
|
||||
model.setExtra(TENANT_KEY, loginUser.getTenantId())
|
||||
|
||||
@ -47,10 +47,15 @@ public class SysClient extends BaseEntity {
|
||||
*/
|
||||
private String grantType;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
private String deviceType;
|
||||
|
||||
/**
|
||||
* token活跃超时时间
|
||||
*/
|
||||
private Long activityTimeout;
|
||||
private Long activeTimeout;
|
||||
|
||||
/**
|
||||
* token固定超时时间
|
||||
|
||||
@ -56,10 +56,15 @@ public class SysClientBo extends BaseEntity {
|
||||
*/
|
||||
private String grantType;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
private String deviceType;
|
||||
|
||||
/**
|
||||
* token活跃超时时间
|
||||
*/
|
||||
private Long activityTimeout;
|
||||
private Long activeTimeout;
|
||||
|
||||
/**
|
||||
* token固定超时时间
|
||||
|
||||
@ -62,11 +62,16 @@ public class SysClientVo implements Serializable {
|
||||
*/
|
||||
private String grantType;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
private String deviceType;
|
||||
|
||||
/**
|
||||
* token活跃超时时间
|
||||
*/
|
||||
@ExcelProperty(value = "token活跃超时时间")
|
||||
private Long activityTimeout;
|
||||
private Long activeTimeout;
|
||||
|
||||
/**
|
||||
* token固定超时时间
|
||||
|
||||
@ -1204,7 +1204,8 @@ create table sys_client (
|
||||
client_key varchar(32) default null,
|
||||
client_secret varchar(255) default null,
|
||||
grant_type varchar(255) default null,
|
||||
activity_timeout number(11) default 1800,
|
||||
device_type varchar(32) default null,
|
||||
active_timeout number(11) default 1800,
|
||||
timeout number(11) default 604800,
|
||||
status char(1) default '0',
|
||||
del_flag char(1) default '0',
|
||||
@ -1223,7 +1224,8 @@ comment on column sys_client.client_id is '客户端id';
|
||||
comment on column sys_client.client_key is '客户端key';
|
||||
comment on column sys_client.client_secret is '客户端秘钥';
|
||||
comment on column sys_client.grant_type is '授权类型';
|
||||
comment on column sys_client.activity_timeout is 'token活跃超时时间';
|
||||
comment on column sys_client.device_type is '设备类型';
|
||||
comment on column sys_client.active_timeout is 'token活跃超时时间';
|
||||
comment on column sys_client.timeout is 'token固定超时';
|
||||
comment on column sys_client.status is '状态(0正常 1停用)';
|
||||
comment on column sys_client.del_flag is '删除标志(0代表存在 2代表删除)';
|
||||
@ -1233,8 +1235,8 @@ comment on column sys_client.create_time is '创建时间';
|
||||
comment on column sys_client.update_by is '更新者';
|
||||
comment on column sys_client.update_time is '更新时间';
|
||||
|
||||
insert into sys_client values (1, 'e5cd7e4891bf95d1d19206ce24a7b32e', 'pc', 'pc123', 'password,social', 1800, 604800, 0, 0, 103, 1, sysdate, 1, sysdate);
|
||||
insert into sys_client values (2, '428a8310cd442757ae699df5d894f051', 'app', 'app123', 'password,sms,social', 1800, 604800, 0, 0, 103, 1, sysdate, 1, sysdate);
|
||||
insert into sys_client values (1, 'e5cd7e4891bf95d1d19206ce24a7b32e', 'pc', 'pc123', 'password,social', 'pc', 1800, 604800, 0, 0, 103, 1, sysdate, 1, sysdate);
|
||||
insert into sys_client values (2, '428a8310cd442757ae699df5d894f051', 'app', 'app123', 'password,sms,social', 'app', 1800, 604800, 0, 0, 103, 1, sysdate, 1, sysdate);
|
||||
|
||||
|
||||
-- ----------------------------
|
||||
|
||||
@ -1226,7 +1226,8 @@ create table sys_client (
|
||||
client_key varchar(32) ''::varchar,
|
||||
client_secret varchar(255) ''::varchar,
|
||||
grant_type varchar(255) ''::varchar,
|
||||
activity_timeout int4 default 1800,
|
||||
device_type varchar(32) ''::varchar,
|
||||
active_timeout int4 default 1800,
|
||||
timeout int4 default 604800,
|
||||
status char(1) default '0'::bpchar,
|
||||
del_flag char(1) default '0'::bpchar,
|
||||
@ -1244,7 +1245,8 @@ comment on column sys_client.client_id is '客户端id';
|
||||
comment on column sys_client.client_key is '客户端key';
|
||||
comment on column sys_client.client_secret is '客户端秘钥';
|
||||
comment on column sys_client.grant_type is '授权类型';
|
||||
comment on column sys_client.activity_timeout is 'token活跃超时时间';
|
||||
comment on column sys_client.device_type is '设备类型';
|
||||
comment on column sys_client.active_timeout is 'token活跃超时时间';
|
||||
comment on column sys_client.timeout is 'token固定超时';
|
||||
comment on column sys_client.status is '状态(0正常 1停用)';
|
||||
comment on column sys_client.del_flag is '删除标志(0代表存在 2代表删除)';
|
||||
@ -1254,8 +1256,8 @@ comment on column sys_client.create_time is '创建时间';
|
||||
comment on column sys_client.update_by is '更新者';
|
||||
comment on column sys_client.update_time is '更新时间';
|
||||
|
||||
insert into sys_client values (1, 'e5cd7e4891bf95d1d19206ce24a7b32e', 'pc', 'pc123', 'password,social', 1800, 604800, 0, 0, 103, 1, now(), 1, now());
|
||||
insert into sys_client values (2, '428a8310cd442757ae699df5d894f051', 'app', 'app123', 'password,sms,social', 1800, 604800, 0, 0, 103, 1, now(), 1, now());
|
||||
insert into sys_client values (1, 'e5cd7e4891bf95d1d19206ce24a7b32e', 'pc', 'pc123', 'password,social', 'pc', 1800, 604800, 0, 0, 103, 1, now(), 1, now());
|
||||
insert into sys_client values (2, '428a8310cd442757ae699df5d894f051', 'app', 'app123', 'password,sms,social', 'app', 1800, 604800, 0, 0, 103, 1, now(), 1, now());
|
||||
|
||||
-- 字符串自动转时间 避免框架时间查询报错问题
|
||||
create or replace function cast_varchar_to_timestamp(varchar) returns timestamptz as $$
|
||||
|
||||
@ -861,7 +861,8 @@ create table sys_client (
|
||||
client_key varchar(32) default null comment '客户端key',
|
||||
client_secret varchar(255) default null comment '客户端秘钥',
|
||||
grant_type varchar(255) default null comment '授权类型',
|
||||
activity_timeout int(11) default 1800 comment 'token活跃超时时间',
|
||||
device_type varchar(32) default null comment '设备类型',
|
||||
active_timeout int(11) default 1800 comment 'token活跃超时时间',
|
||||
timeout int(11) default 604800 comment 'token固定超时',
|
||||
status char(1) default '0' comment '状态(0正常 1停用)',
|
||||
del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)',
|
||||
@ -873,5 +874,5 @@ create table sys_client (
|
||||
primary key (id)
|
||||
) engine=innodb comment='系统授权表';
|
||||
|
||||
insert into sys_client values (1, 'e5cd7e4891bf95d1d19206ce24a7b32e', 'pc', 'pc123', 'password,social', 1800, 604800, 0, 0, 103, 1, sysdate(), 1, sysdate());
|
||||
insert into sys_client values (2, '428a8310cd442757ae699df5d894f051', 'app', 'app123', 'password,sms,social', 1800, 604800, 0, 0, 103, 1, sysdate(), 1, sysdate());
|
||||
insert into sys_client values (1, 'e5cd7e4891bf95d1d19206ce24a7b32e', 'pc', 'pc123', 'password,social', 'pc', 1800, 604800, 0, 0, 103, 1, sysdate(), 1, sysdate());
|
||||
insert into sys_client values (2, '428a8310cd442757ae699df5d894f051', 'app', 'app123', 'password,sms,social', 'app', 1800, 604800, 0, 0, 103, 1, sysdate(), 1, sysdate());
|
||||
|
||||
@ -3083,7 +3083,8 @@ CREATE TABLE sys_client
|
||||
client_key nvarchar(255) DEFAULT '' NULL,
|
||||
client_secret nvarchar(255) DEFAULT '' NULL,
|
||||
grant_type nvarchar(255) DEFAULT '' NULL,
|
||||
activity_timeout int DEFAULT ((1800)) NULL,
|
||||
device_type nvarchar(32) DEFAULT '' NULL,
|
||||
active_timeout int DEFAULT ((1800)) NULL,
|
||||
timeout int DEFAULT ((604800)) NULL,
|
||||
status nchar(1) DEFAULT ('0') NULL,
|
||||
del_flag nchar(1) DEFAULT ('0') NULL,
|
||||
@ -3130,10 +3131,16 @@ EXEC sp_addextendedproperty
|
||||
'COLUMN', N'grant_type'
|
||||
GO
|
||||
EXEC sp_addextendedproperty
|
||||
'MS_Description', N'设备类型',
|
||||
'SCHEMA', N'dbo',
|
||||
'TABLE', N'sys_client',
|
||||
'COLUMN', N'device_type'
|
||||
GO
|
||||
EXEC sp_addextendedproperty
|
||||
'MS_Description', N'token活跃超时时间',
|
||||
'SCHEMA', N'dbo',
|
||||
'TABLE', N'sys_client',
|
||||
'COLUMN', N'activity_timeout'
|
||||
'COLUMN', N'active_timeout'
|
||||
GO
|
||||
EXEC sp_addextendedproperty
|
||||
'MS_Description', N'token固定超时',
|
||||
@ -3189,7 +3196,7 @@ EXEC sp_addextendedproperty
|
||||
'TABLE', N'sys_client'
|
||||
GO
|
||||
|
||||
INSERT INTO sys_client VALUES (N'1', N'e5cd7e4891bf95d1d19206ce24a7b32e', N'pc', N'pc123', N'password,social', 1800, 604800, N'0', N'0', 103, 1, getdate(), 1, getdate())
|
||||
INSERT INTO sys_client VALUES (N'1', N'e5cd7e4891bf95d1d19206ce24a7b32e', N'pc', N'pc123', N'password,social', N'pc', 1800, 604800, N'0', N'0', 103, 1, getdate(), 1, getdate())
|
||||
GO
|
||||
INSERT INTO sys_client VALUES (N'2', N'428a8310cd442757ae699df5d894f051', N'app', N'app123', N'password,sms,social', 1800, 604800, N'0', N'0', 103, 1, getdate(), 1, getdate())
|
||||
INSERT INTO sys_client VALUES (N'2', N'428a8310cd442757ae699df5d894f051', N'app', N'app123', N'password,sms,social', N'app', 1800, 604800, N'0', N'0', 103, 1, getdate(), 1, getdate())
|
||||
GO
|
||||
|
||||
Loading…
Reference in New Issue
Block a user