重构 sa-token-jwt 插件

This commit is contained in:
click33
2022-04-30 08:21:04 +08:00
parent 7f93c2086d
commit d45d404fa0
9 changed files with 24 additions and 34 deletions

View File

@@ -55,7 +55,7 @@ public class SaJwtUtil {
// 构建
String token = JWT.create()
.setPayload(LOGIN_ID, loginId)
// 混入随机字符
// 混入随机字符串,防止每次生成的 token 都是一样的
.setPayload("rn", SaFoxUtil.getRandomString(32))
.addPayloads(extraData)
.setKey(keyt.getBytes())

View File

@@ -82,11 +82,13 @@ public class StpLogicJwtForStateless extends StpLogic {
// ------------------- 登录相关操作 -------------------
/**
* 会话登录并指定所有登录参数Model
* 创建指定账号id的登录会话
* @param id 登录id建议的类型long | int | String
* @param loginModel 此次登录的参数Model
* @return 返回会话令牌
*/
@Override
public void login(Object id, SaLoginModel loginModel) {
public String createLoginSession(Object id, SaLoginModel loginModel) {
SaTokenException.throwByNull(id, "账号id不能为空");
// ------ 1、初始化 loginModel
@@ -95,11 +97,10 @@ public class StpLogicJwtForStateless extends StpLogic {
// ------ 2、生成一个token
String tokenValue = createTokenValue(id, loginModel.getDeviceOrDefault(), loginModel.getTimeout(), loginModel.getExtraData());
// 3、在当前会话写入tokenValue
setTokenValue(tokenValue, loginModel.getCookieTimeout());
// $$ 通知监听器账号xxx 登录成功
SaManager.getSaTokenListener().doLogin(loginType, id, loginModel);
SaManager.getSaTokenListener().doLogin(loginType, id, tokenValue, loginModel);
return tokenValue;
}
/**