Skip to main content

9. JWT 配置

配置智能提示和校验

如需编写配置的时候提供智能提示和校验,可查看 【2.15 JSON Schema 使用

只需要在 .json 文件头部添加下列配置即可:

{
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json"
}

9.1 关于配置

JWT 配置指的是生成 JWT token 配置。

9.2 配置信息

  • JWTSettings:根节点
    • ValidateIssuerSigningKey:是否验证密钥,bool 类型,默认 true
    • IssuerSigningKey:密钥(公钥),string 类型,必须是复杂密钥,长度大于 16,.NET8+ 长度需大于 32
    • IssuerSigningPrivateKey:私钥,string 类型,仅使用 RS*/PS*/ES* 加密算法时才需要配置,其他加密配置为 nullstring 类型,Furion 4.9.8.24+ 支持
    • ValidateIssuer:是否验证签发方,bool 类型,默认 true
    • ValidIssuer:签发方,string 类型
    • ValidateAudience:是否验证签收方,bool 类型,默认 true
    • ValidAudience:签收方,string 类型
    • ValidateLifetim:是否验证过期时间,bool 类型,默认 true,建议 true
    • ExpiredTime:过期时间,long 类型,单位分钟,默认 20 分钟
    • ClockSkew:过期时间容错值,long 类型,单位秒,默认 5
    • RequireExpirationTime:是否验证过期时间,bool 类型,默认 falseFurion 4.9.1.46+ 支持
    • Algorithm:加密算法,string 类型,默认 HS256,可选算法有:
      • HS256
      • HS384
      • HS512
      • PS256
      • PS384
      • PS512
      • RS256Furion 4.9.8.24+ 支持
      • RS384Furion 4.9.8.24+ 支持
      • RS512Furion 4.9.8.24+ 支持
      • ES256
      • ES256K
      • ES384
      • ES512
      • EdDSA

9.3 配置示例

{
"JWTSettings": {
"ValidateIssuerSigningKey": true, // 是否验证密钥,bool 类型,默认true
"IssuerSigningKey": "你的密钥(公钥)", // 密钥,string 类型,必须是复杂密钥,长度大于16,.NET8+ 长度需大于 32
"IssuerSigningPrivateKey": null, // 私钥,string 类型,仅使用 RS*/PS*/ES* 加密算法时才需要配置,其他加密配置为 null,string 类型,Furion 4.9.8.24+ 支持
"ValidateIssuer": true, // 是否验证签发方,bool 类型,默认true
"ValidIssuer": "签发方", // 签发方,string 类型
"ValidateAudience": true, // 是否验证签收方,bool 类型,默认true
"ValidAudience": "签收方", // 签收方,string 类型
"ValidateLifetime": true, // 是否验证过期时间,bool 类型,默认true,建议true
"ExpiredTime": 20, // 过期时间,long 类型,单位分钟,默认20分钟,最大支持 13 年
"ClockSkew": 5, // 过期时间容错值,long 类型,单位秒,默认 5秒
"Algorithm": "HS256", // 加密算法,string 类型,默认 HS256
"RequireExpirationTime": true // 验证过期时间,设置 false 将永不过期,Furion 4.9.1.46+ 支持
}
}