## 前言 * BladeX 默认采用JWT分布式无状态认证的模式,无需配置可直接启动 * 考虑到企业使用中遇到的各种场景,BladeX对Token策略进行了改良,可以通过配置开启有状态认证的模式 * 通过巧妙设计,开启有状态配置后,会将Token保存在Redis中,在无状态认证的环节加上一层redis认证的步骤 * 在分布式部署的场景下,无需再做任何配置,所有Token都将保存至Redis服务中,可以配置一个账号登录多人也可以配置一个账号只可一人登录 * BladeX 的Token策略切换,整个流程都是无感知的,大家只需延续以往的开发习惯即可 ## 状态配置 * Token默认为无状态,配置如下 ![](../../images/screenshot_1591520335900.png) * 若需要配置为有状态,只需将state的值改为true ![](../../images/screenshot_1591520373105.png) ## 在线配置 * 开启有状态认证后,可以配置一个账号可以登录多人还是单人,具体如下 ![](../../images/screenshot_1591520431814.png) ## 签名配置 * JWT加密生成Token的时候可以指定一个签名,默认为BladeX,也可以自行配置,具体如下 ![](../../images/screenshot_1591520504393.png) ## 踢出登录 * 对于一些需要踢人的场景,可以使用框架内置的API进行操作 `JwtUtil.removeAccessToken(String tenantId, String userId)` * 若开启了单人模式,则无需配置,框架会默认踢出上一个登录的Token,并生成新的Token给新的用户,这个操作俗称:顶号 ## 后记 * 想要了解源码逻辑、具体实现请看`blade-starter-jwt`、`blade-starter-auth`、`blade-core-secure`三个组件 * 后续也会更新关于Secure安全框架的源码级解析,敬请期待~