Skip to content

身份声明(Claims)

(文档尚未完善,内容仅作参考)

身份声明(Claim)是 JWT 令牌中的核心内容,用于描述用户的身份信息和权限。每个 Claim 都是一个键值对,例如用户 ID、角色、邮箱等。

Claim 的作用

  • 标识用户唯一身份(如 sub、userId)
  • 携带用户角色、权限、邮箱等业务属性
  • 支持自定义业务扩展字段

Claim 示例

cangjie
let payload = JwtPayload(
    issuer: "spire",
    audience: "cangjie",
    notBefore: DateTime.now(),
    expires: DateTime.now().addHours(1),
    claims: [
        ("sub", "1024"),
        ("role", "admin"),
        ("email", "user@example.com")
    ]
)

Claim 的最佳实践

  • 只包含必要的身份和权限信息,避免敏感数据泄露
  • 建议使用标准 Claim 名称(如 sub、aud、exp、nbf、iss、role)
  • 业务自定义 Claim 建议加前缀防止冲突

Claim 在验证中的作用

  • 服务端通过解析 JWT,读取 Claim 判断用户身份和权限
  • 可结合授权中间件实现基于 Claim 的访问控制

身份声明是安全认证和授权的基础,合理设计 Claim 能提升系统安全性和扩展性。