mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-06-28 13:34:18 +08:00
TokenSign 新增 tag 挂载参数
This commit is contained in:
parent
fa16d9c5e1
commit
c5caad7a64
@ -328,8 +328,9 @@ public class SaSession implements SaSetValueInterface, Serializable {
|
||||
* @param tokenValue token值
|
||||
* @param device 设备类型
|
||||
*/
|
||||
@Deprecated
|
||||
public void addTokenSign(String tokenValue, String device) {
|
||||
addTokenSign(new TokenSign(tokenValue, device));
|
||||
addTokenSign(new TokenSign(tokenValue, device, null));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -42,6 +42,11 @@ public class TokenSign implements Serializable {
|
||||
*/
|
||||
private String device;
|
||||
|
||||
/**
|
||||
* 此客户端登录的挂载数据
|
||||
*/
|
||||
private Object tag;
|
||||
|
||||
/**
|
||||
* 构建一个
|
||||
*/
|
||||
@ -53,10 +58,12 @@ public class TokenSign implements Serializable {
|
||||
*
|
||||
* @param value Token 值
|
||||
* @param device 所属设备类型
|
||||
* @param tag 此客户端登录的挂载数据
|
||||
*/
|
||||
public TokenSign(String value, String device) {
|
||||
public TokenSign(String value, String device, Object tag) {
|
||||
this.value = value;
|
||||
this.device = device;
|
||||
this.tag = tag;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -95,10 +102,30 @@ public class TokenSign implements Serializable {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 此客户端登录的挂载数据
|
||||
*
|
||||
* @return /
|
||||
*/
|
||||
public Object getTag() {
|
||||
return this.tag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置 此客户端登录的挂载数据
|
||||
*
|
||||
* @param tag /
|
||||
* @return 对象自身
|
||||
*/
|
||||
public TokenSign setTag(Object tag) {
|
||||
this.tag = tag;
|
||||
return this;
|
||||
}
|
||||
|
||||
//
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TokenSign [value=" + value + ", device=" + device + "]";
|
||||
return "TokenSign [value=" + value + ", device=" + device + ", tag=" + tag + "]";
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -94,6 +94,16 @@ public class SaLoginConfig {
|
||||
return create().setIsWriteHeader(isWriteHeader);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置 本次登录挂载到 TokenSign 的数据
|
||||
*
|
||||
* @param tokenSignTag /
|
||||
* @return 登录参数 Model
|
||||
*/
|
||||
public static SaLoginModel setTokenSignTag(Object tokenSignTag) {
|
||||
return create().setTokenSignTag(tokenSignTag);
|
||||
}
|
||||
|
||||
/**
|
||||
* 静态方法获取一个 SaLoginModel 对象
|
||||
* @return SaLoginModel 对象
|
||||
|
@ -63,8 +63,11 @@ public class SaLoginModel {
|
||||
|
||||
/** 是否在登录后将 Token 写入到响应头 */
|
||||
private Boolean isWriteHeader;
|
||||
|
||||
|
||||
|
||||
/** 本次登录挂载到 TokenSign 的数据 */
|
||||
private Object tokenSignTag;
|
||||
|
||||
|
||||
/**
|
||||
* @return 此次登录的客户端设备类型
|
||||
*/
|
||||
@ -191,6 +194,25 @@ public class SaLoginModel {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 本次登录挂载到 TokenSign 的数据
|
||||
*
|
||||
* @return tokenSignTag 本次登录挂载到 TokenSign 的数据
|
||||
*/
|
||||
public Object getTokenSignTag() {
|
||||
return this.tokenSignTag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置 本次登录挂载到 TokenSign 的数据
|
||||
*
|
||||
* @param tokenSignTag 本次登录挂载到 TokenSign 的数据
|
||||
* @return 对象自身
|
||||
*/
|
||||
public SaLoginModel setTokenSignTag(Object tokenSignTag) {
|
||||
this.tokenSignTag = tokenSignTag;
|
||||
return this;
|
||||
}
|
||||
/*
|
||||
* toString
|
||||
*/
|
||||
@ -203,6 +225,7 @@ public class SaLoginModel {
|
||||
+ ", extraData=" + extraData
|
||||
+ ", token=" + token
|
||||
+ ", isWriteHeader=" + isWriteHeader
|
||||
+ ", tokenSignTag=" + tokenSignTag
|
||||
+ "]";
|
||||
}
|
||||
|
||||
|
@ -435,7 +435,8 @@ public class StpLogic {
|
||||
session.updateMinTimeout(loginModel.getTimeout());
|
||||
|
||||
// 5、在 Account-Session 上记录本次登录的 token 签名
|
||||
session.addTokenSign(tokenValue, loginModel.getDeviceOrDefault());
|
||||
TokenSign tokenSign = new TokenSign(tokenValue, loginModel.getDeviceOrDefault(), loginModel.getTokenSignTag());
|
||||
session.addTokenSign(tokenSign);
|
||||
|
||||
// 6、保存 token -> id 的映射关系,方便日后根据 token 找账号 id
|
||||
saveTokenToIdMapping(tokenValue, id, loginModel.getTimeout());
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
单点登录——就是为了解决这个问题而生!
|
||||
|
||||
简而言之,单点登录可以做到:**`在多个互相信任的系统中,用户只需登录一次,就可以访问所有系统。`**
|
||||
简而言之,单点登录可以做到: **`在多个互相信任的系统中,用户只需登录一次,就可以访问所有系统。`**
|
||||
|
||||
|
||||
### 架构选型
|
||||
|
Loading…
Reference in New Issue
Block a user