mirror of
https://gitee.com/dromara/sa-token.git
synced 2024-11-29 18:37:49 +08:00
新增 StpLogic#getOrCreateLoginSession 方法,获取指定账号 id 的登录会话数据,如果获取不到则创建并返回
This commit is contained in:
parent
8235fe7633
commit
a1560ce0a7
@ -37,7 +37,6 @@ import cn.dev33.satoken.util.SaTokenConsts;
|
||||
import cn.dev33.satoken.util.SaValue2Box;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
@ -591,6 +590,20 @@ public class StpLogic {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定账号 id 的登录会话数据,如果获取不到则创建并返回
|
||||
*
|
||||
* @param id 账号id,建议的类型:(long | int | String)
|
||||
* @return 返回会话令牌
|
||||
*/
|
||||
public String getOrCreateLoginSession(Object id) {
|
||||
String tokenValue = getTokenValueByLoginId(id);
|
||||
if(tokenValue == null) {
|
||||
tokenValue = createLoginSession(id, new SaLoginModel());
|
||||
}
|
||||
return tokenValue;
|
||||
}
|
||||
|
||||
// --- 注销
|
||||
|
||||
/**
|
||||
|
@ -224,7 +224,17 @@ public class StpUtil {
|
||||
public static String createLoginSession(Object id, SaLoginModel loginModel) {
|
||||
return stpLogic.createLoginSession(id, loginModel);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取指定账号 id 的登录会话数据,如果获取不到则创建并返回
|
||||
*
|
||||
* @param id 账号id,建议的类型:(long | int | String)
|
||||
* @return 返回会话令牌
|
||||
*/
|
||||
public static String getOrCreateLoginSession(Object id) {
|
||||
return stpLogic.getOrCreateLoginSession(id);
|
||||
}
|
||||
|
||||
// --- 注销
|
||||
|
||||
/**
|
||||
|
@ -215,6 +215,16 @@ public class StpUserUtil {
|
||||
return stpLogic.createLoginSession(id, loginModel);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定账号 id 的登录会话数据,如果获取不到则创建并返回
|
||||
*
|
||||
* @param id 账号id,建议的类型:(long | int | String)
|
||||
* @return 返回会话令牌
|
||||
*/
|
||||
public static String getOrCreateLoginSession(Object id) {
|
||||
return stpLogic.getOrCreateLoginSession(id);
|
||||
}
|
||||
|
||||
// --- 注销
|
||||
|
||||
/**
|
||||
|
@ -4,6 +4,7 @@ import cn.dev33.satoken.context.SaHolder;
|
||||
import cn.dev33.satoken.oauth2.SaOAuth2Manager;
|
||||
import cn.dev33.satoken.oauth2.config.SaOAuth2ServerConfig;
|
||||
import cn.dev33.satoken.oauth2.processor.SaOAuth2ServerProcessor;
|
||||
import cn.dev33.satoken.oauth2.strategy.SaOAuth2Strategy;
|
||||
import cn.dev33.satoken.oauth2.template.SaOAuth2Util;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.dev33.satoken.util.SaResult;
|
||||
@ -56,6 +57,12 @@ public class SaOAuth2ServerController {
|
||||
return new ModelAndView("confirm.html", map);
|
||||
};
|
||||
|
||||
// 重写 AccessToken 创建策略,返回会话令牌
|
||||
SaOAuth2Strategy.instance.createAccessToken = (clientId, loginId, scopes) -> {
|
||||
System.out.println("----返回会话令牌");
|
||||
return StpUtil.getOrCreateLoginSession(loginId);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -212,6 +212,16 @@ public class StpUserUtil {
|
||||
return stpLogic.createLoginSession(id, loginModel);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定账号 id 的登录会话数据,如果获取不到则创建并返回
|
||||
*
|
||||
* @param id 账号id,建议的类型:(long | int | String)
|
||||
* @return 返回会话令牌
|
||||
*/
|
||||
public static String getOrCreateLoginSession(Object id) {
|
||||
return stpLogic.getOrCreateLoginSession(id);
|
||||
}
|
||||
|
||||
// --- 注销
|
||||
|
||||
/**
|
||||
|
@ -27,7 +27,7 @@ public void configOAuth2Server(SaOAuth2ServerConfig oauth2Server) {
|
||||
// 重写 AccessToken 创建策略,返回会话令牌
|
||||
SaOAuth2Strategy.instance.createAccessToken = (clientId, loginId, scopes) -> {
|
||||
System.out.println("----返回会话令牌");
|
||||
return StpUtil.createLoginSession(loginId);
|
||||
return StpUtil.getOrCreateLoginSession(loginId);
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -47,6 +47,25 @@ public class SaOAuth2DataLoaderImpl implements SaOAuth2DataLoader {
|
||||
}
|
||||
```
|
||||
|
||||
3、在 `application.yml` 配置文件中配置 jwt 生成秘钥:
|
||||
|
||||
<!---------------------------- tabs:start ---------------------------->
|
||||
<!------------- tab:yaml 风格 ------------->
|
||||
``` yaml
|
||||
sa-token:
|
||||
# jwt秘钥
|
||||
jwt-secret-key: asdasdasifhueuiwyurfewbfjsdafjk
|
||||
```
|
||||
<!------------- tab:properties 风格 ------------->
|
||||
``` properties
|
||||
# jwt秘钥
|
||||
sa-token.jwt-secret-key: asdasdasifhueuiwyurfewbfjsdafjk
|
||||
```
|
||||
<!---------------------------- tabs:end ---------------------------->
|
||||
|
||||
注:为了安全起见请不要直接复制官网示例这个字符串(随便按几个字符就好了)
|
||||
|
||||
|
||||
|
||||
### 2、测试
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user