sa-token/sa-token-doc/doc/use/config.md

4.4 KiB
Raw Blame History

框架配置

你可以零配置启动框架
但同时你也可以通过配置,定制性使用框架,sa-token支持多种方式配置框架信息

方式1、在application.yml配置

spring: 
    # sa-token配置
    sa-token: 
        # token名称 (同时也是cookie名称)
        token-name: satoken
        # token有效期单位s 默认30天, -1代表永不过期 
        timeout: 2592000
        # token临时有效期 (指定时间内无操作就视为token过期) 单位: 
        activity-timeout: -1
        # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) 
        allow-concurrent-login: false
        # 在多人登录同一账号时是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) 
        is-share: false
        # token风格
        token-style: uuid

如果你习惯于 application.properties 类型的配置文件,那也很好办: 百度: springboot properties与yml 配置文件的区别

方式2、通过代码配置

/**
 * sa-token代码方式进行配置
 */
@Configuration
public class SaTokenConfigure {

	// 获取配置Bean (以代码的方式配置sa-token, 此配置会覆盖yml中的配置)
	@Primary
	@Bean(name="SaTokenConfigure")
	public SaTokenConfig getSaTokenConfig() {
		SaTokenConfig config = new SaTokenConfig();
		config.setTokenName("satoken");             // token名称 (同时也是cookie名称)
		config.setTimeout(30 * 24 * 60 * 60);       // token有效期单位s 默认30天
		config.setActivityTimeout(-1);              // token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
		config.setAllowConcurrentLogin(true);       // 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) 
		config.setIsShare(true);                    // 在多人登录同一账号时是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) 
		config.setTokenStyle("uuid");               // token风格 
		return config;
	}
	
}

所有可配置项

参数名称 类型 默认值 说明
tokenName String satoken token名称 (同时也是cookie名称)
timeout long 2592000 token有效期单位/秒 默认30天-1代表永久有效 参考token有效期详解
activityTimeout long -1 token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒, 默认-1 代表不限制 (例如可以设置为1800代表30分钟内无操作就过期) 参考token有效期详解
allowConcurrentLogin Boolean true 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
isShare Boolean true 在多人登录同一账号时是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
isReadBody Boolean true 是否尝试从请求体里读取token
isReadHead Boolean true 是否尝试从header里读取token
isReadCookie Boolean true 是否尝试从cookie里读取token
tokenStyle String uuid token风格, 参考花式token
dataRefreshPeriod int 30 默认dao层实现类中每次清理过期数据间隔的时间 (单位: 秒) 默认值30秒设置为-1代表不启动定时清理
tokenSessionCheckLogin Boolean true 获取token专属session时是否必须登录 (如果配置为true会在每次获取token专属session时校验是否登录)
autoRenew Boolean true 是否打开自动续签 (如果此值为true, 框架会在每次直接或间接调用getLoginId()时进行一次过期检查与续签操作)
tokenPrefix Boolean true token前缀, 格式样例(satoken: Bearer xxxx-xxxx-xxxx-xxxx) 参考token前缀
isV Boolean true 是否在初始化配置时打印版本字符画