类 ThirdPartAuthService

java.lang.Object
net.sohelp.boot.dev.web.system.thirdpart.ThirdPartAuthService

@Service public class ThirdPartAuthService extends Object
接口授权验证服务

提供第三方应用接口授权的密钥验证、Token认证、到期检查等方法, 可在 Java 控制器或 Magic-API 脚本中直接调用。

Magic-API 使用示例:

 import net.sohelp.boot.dev.web.system.thirdpart.ThirdPartAuthService

 // Token 模式:app_key + app_secret 换取 Token
 var result = ThirdPartAuthService.authenticate("app-key", "app-secret");

 // 验证当前请求的第三方 Token
 var result = ThirdPartAuthService.validateToken();

 // 简单模式:验证密钥
 var result = ThirdPartAuthService.validateKey("your-app-key");
 
从以下版本开始:
2026/3/27
作者:
AaronFung
  • 构造器详细资料

    • ThirdPartAuthService

      public ThirdPartAuthService()
  • 方法详细资料

    • setJdbcHelper

      @Autowired public void setJdbcHelper(JdbcHelper jdbcHelper)
    • setEncryptKey

      @Value("${sa-token.sign.secret-key:}") public void setEncryptKey(String signSecretKey)
    • encryptSecret

      public static String encryptSecret(String plainSecret)
      加密 app_secret(存储到数据库前调用)
      参数:
      plainSecret - 明文密钥
      返回:
      加密后的 Base64 字符串;若未配置加密密钥则原样返回
    • decryptSecret

      public static String decryptSecret(String encryptedSecret)
      解密 app_secret(从数据库读取后调用)
      参数:
      encryptedSecret - 加密后的密钥
      返回:
      明文密钥;若解密失败则原样返回(兼容历史明文数据)
    • validateKey

      public static Map<String,Object> validateKey(String appKey)
      根据 app_key 验证第三方配置

      检查密钥是否存在、是否启用、是否已到期

      参数:
      appKey - 第三方应用密钥
      返回:
      验证结果 Map,包含 success(boolean), message(String), config(Map)
    • authenticate

      public static Map<String,Object> authenticate(String appKey, String appSecret)
      第三方应用认证:app_key + app_secret 换取 SaToken

      验证通过后,使用 SaToken 签发 Token,第三方后续请求通过 Authorization 头携带 Token 访问接口。 登录 ID 格式为 "third:{configId}",与普通用户登录隔离。

      Magic-API 使用示例:

       var result = ThirdPartAuthService.authenticate("app-key-xxx", "app-secret-xxx");
       // result: {success:true, token:"xxx", expire:7200, config_id:123}
       
      参数:
      appKey - 应用ID/AppKey
      appSecret - 应用密钥/AppSecret
      返回:
      认证结果 Map,成功时包含 token、expire、config_id
    • logout

      public static void logout(Object configId)
      注销第三方应用 Token
      参数:
      configId - 第三方配置ID
    • validateToken

      public static Map<String,Object> validateToken()
      校验当前请求是否为已认证的第三方应用

      检查当前 SaToken 会话的 loginId 是否以 "third:" 开头, 并验证对应的第三方配置仍然有效(启用且未到期)。

      返回:
      验证结果 Map,成功时包含 config
    • checkExpire

      public static boolean checkExpire(Object configId)
      根据配置ID检查是否已到期
      参数:
      configId - 配置记录ID
      返回:
      true=已到期, false=未到期或永久
    • getConfigByKey

      public static Map<String,Object> getConfigByKey(String appKey)
      根据 app_key 获取配置信息(不做状态和到期校验)
      参数:
      appKey - 应用密钥
      返回:
      配置 Map,不存在返回 null