# 插件说明

JWT校验插件不生成token,token由业务生成,插件只校验token是合法性。支持对以下算法的token进行校验:

  • HS256
  • HS384
  • HS512
  • RS256
  • RS384
  • RS512
  • ES256
  • ES256K
  • ES384
  • ES512

# 使用说明

当一个路由需要做JWT校验时,可在路由详情页面添加JWT插件来校验,配置如下:

# 全局配置

支持在 网关管理->插件管理 里对插件进行全局默认密钥进行配置,自定义配置格式如下:

{
"secretKey": "123456", 
"secretKey_desc": "secret key for HS256/HS384/HS512 Algorithm", 
"publicKey": "-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuGbXWiK3dQTyCbX5xdE4
yCuYp0AF2d15Qq1JSXT/lx8CEcXb9RbDddl8jGDv+spi5qPa8qEHiK7FwV2KpRE9
83wGPnYsAm9BxLFb4YrLYcDFOIGULuk2FtrPS512Qea1bXASuvYXEpQNpGbnTGVs
WXI9C+yjHztqyL2h8P6mlThPY9E9ue2fCqdgixfTFIF9Dm4SLHbphUS2iw7w1JgT
69s7of9+I9l5lsJ9cozf1rxrXX4V1u/SotUuNB3Fp8oB4C1fLBEhSlMcUJirz1E8
AziMCxS+VrRPDM+zfvpIJg3JljAh3PJHDiLu902v9w+Iplu1WyoB2aPfitxEhRN0
YwIDAQAB
-----END PUBLIC KEY-----",
"publicKey_desc": "public key for RS256/RS384/RS512/ES256/ES256K/ES384/ES512 Algorithm" 
}
  • secretKey 是HS256/HS384/HS512算法使用的密钥,如果不是这些算法可留空
  • publicKey 是RS256/RS384/RS512/ES256/ES256K/ES384/ES512算法使用的公钥,如果不是这些算法可留空
  • secretKey_desc 描述字段
  • publicKey_desc 描述字段

路由级别的密钥配置的优先级高于全局的密钥,推荐配置全局密钥。

# 路由级别配置

  • 密钥:如果你已经配置了全局的密钥配置可留空,如果没有配置全局的密钥则每个路由的JWT插件都需要配置密钥。当JWT使用的是HS256/HS384/HS512算法时填写生成token的密钥,当JWT使用的是RS256/RS384/RS512/ES256/ES256K/ES384/ES512算法时填写公钥(公钥用于校验token,私钥用于生成token)。

  • 在token校验不通过时可自定义响应的报文和HTTP状态码

  • 提取JWT Claims到上下文只用于二次开发,目前没有用到

# 调用方传参

调用方在调用接口时传Authorization请求头,格式为:Authorization=Bearer token

样例:

Authorization=Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.keH6T3x1z7mmhKL1T3r9sQdAxxdzB6siemGMr_6ZOwU