类 SaTempTemplate

java.lang.Object
cn.dev33.satoken.temp.SaTempTemplate
所有已实现的接口:
SaTtlMethods

public class SaTempTemplate extends Object implements SaTtlMethods
Sa-Token 临时 token 验证模块

有效期很短的一种token,一般用于一次性接口防盗用、短时间资源访问等业务场景

从以下版本开始:
1.42.0
作者:
click33
  • 字段详细资料

    • DEFAULT_NAMESPACE

      public static final String DEFAULT_NAMESPACE
      默认命名空间
      另请参阅:
    • namespace

      public String namespace
      命名空间
    • rawSessionDelegator

      public SaRawSessionDelegator rawSessionDelegator
      Raw Session 读写委托
    • TEMP_TOKEN_MAP

      public static final String TEMP_TOKEN_MAP
      在 raw-session 中的保存索引列表使用的 key
      另请参阅:
  • 构造器详细资料

    • SaTempTemplate

      public SaTempTemplate()
    • SaTempTemplate

      public SaTempTemplate(String namespace)
      实例化
      参数:
      namespace - 命名空间,用于多实例隔离
  • 方法详细资料

    • createToken

      public String createToken(Object value, long timeout)
      为指定 value 创建一个临时 token (如果多条业务线均需要创建临时 token,请自行在 value 拼接不同前缀)
      参数:
      value - 指定值
      timeout - 有效时间,单位:秒,-1 代表永久有效
      返回:
      生成的 token
    • createToken

      public String createToken(Object value, long timeout, boolean isRecordIndex)
      为指定 业务标识、指定 value 创建一个 Token
      参数:
      value - 指定值
      timeout - 有效期,单位:秒,-1 代表永久有效
      isRecordIndex - 是否记录索引,以便后续使用 value 反查 token
      返回:
      生成的token
    • saveToken

      public void saveToken(String token, Object value, long timeout)
      保存 token
      参数:
      token - /
      value - /
      timeout - /
    • createTempTokenValue

      public String createTempTokenValue(Object value)
      创建一个 temp-token 值
      返回:
      /
    • randomTempToken

      public String randomTempToken(Object value)
      随机一个 temp-token
      返回:
      /
    • parseToken

      public Object parseToken(String token)
      解析 Token 获取 value
      参数:
      token - 指定 Token
      返回:
      /
    • parseToken

      public <T> T parseToken(String token, Class<T> cs)
      解析 Token 获取 value,并转换为指定类型
      类型参数:
      T - 默认值的类型
      参数:
      token - 指定 Token
      cs - 指定类型
      返回:
      /
    • parseToken

      public <T> T parseToken(String token, String cutPrefix, Class<T> cs)
      解析 token 获取 value,并裁剪指定前缀,然后转换为指定类型

      请注意此方法在旧版本(<= v1.41.0) 时的三个参数为:service, token, class
      新版本三个参数为:token, cutPrefix, class
      请注意其中的逻辑变化

      类型参数:
      T - 默认值的类型
      参数:
      token - 指定 Token
      cs - 指定类型
      返回:
      /
    • getTimeout

      public long getTimeout(String token)
      获取指定指定 Token 的剩余有效期,单位:秒

      返回值 -1 代表永久,-2 代表 token 无效

      参数:
      token - /
      返回:
      /
    • deleteToken

      public void deleteToken(String token)
      删除一个 token
      参数:
      token - 指定 Token
    • adjustIndex

      public Map<String,Long> adjustIndex(Object value, SaSession session)
      调整索引
      参数:
      value - 值
      session - 可填写 null,代表使用 value 现场查询
      返回:
      调整后的索引列表
    • getTempTokenList

      public List<String> getTempTokenList(Object value)
      获取指定 value 的 temp-token 列表记录
      参数:
      value - /
      返回:
      /
    • addTempTokenIndex

      protected void addTempTokenIndex(SaSession session, String token, long timeout)
      在 SaSession 上添加临时 temp-token 索引
      参数:
      session - /
      token - /
      timeout - /
    • deleteTempTokenIndex

      protected void deleteTempTokenIndex(SaSession session, String token)
      在 SaSession 上删除临时 temp-token 索引
      参数:
      session - /
      token - /
    • _getValue

      protected Object _getValue(String token)
    • _deleteToken

      protected void _deleteToken(String token)
    • _getTimeout

      protected long _getTimeout(String token)
    • checkCutPrefixLength

      protected static void checkCutPrefixLength(String cutPrefix)
      检查裁剪前缀长度
      参数:
      cutPrefix - /
    • splicingTempTokenSaveKey

      public String splicingTempTokenSaveKey(String token)
      获取:在存储临时 token 数据时,应该使用的 key
      参数:
      token - token值
      返回:
      key
    • getJwtSecretKey

      public String getJwtSecretKey()
      返回:
      jwt秘钥 (只有集成 sa-token-temp-jwt 模块时此参数才会生效)