身份声明(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 能提升系统安全性和扩展性。