此库不验证 JWT。任何格式正确的 JWT 都可以从 Base64URL 解码。
从 v2 迁移?请查看 迁移指南。
重要提示
查看支持政策,了解何时放弃 Xcode、Swift 和平台版本将不被视为重大更改。
在 Xcode 中打开以下菜单项
文件 > 添加包...
在 搜索或输入包 URL 搜索框中输入此 URL
https://github.com/auth0/JWTDecode.swift
然后,选择依赖规则并按 添加包。
将以下行添加到您的 Podfile
pod 'JWTDecode', '~> 3.2'
然后,运行 pod install
。
将以下行添加到您的 Cartfile
github "auth0/JWTDecode.swift" ~> 3.2
然后,运行 carthage bootstrap --use-xcframeworks
。
请参阅 API 文档 ↗ 中的所有可用功能
import JWTDecode
let jwt = try decode(jwt: token)
部分 | 属性 |
---|---|
头部字典 | jwt.header |
JWT 正文中的声明 | jwt.body |
JWT 签名 | jwt.signature |
声明 (Claim) | 属性 |
---|---|
aud 受众 | jwt.audience |
sub 主题 | jwt.subject |
jti JWT ID | jwt.identifier |
iss 颁发者 | jwt.issuer |
nbf Not Before (在此之前无效) | jwt.notBefore |
iat Issued At (颁发时间) | jwt.issuedAt |
exp Expiration Time (过期时间) | jwt.expiresAt |
您可以通过下标检索自定义声明,然后尝试将该值转换为特定类型。
if let email = jwt["email"].string {
print("Email is \(email)")
}
支持的转换是
var string: String?
var boolean: Bool?
var integer: Int?
var double: Double?
var date: Date?
var array: [String]?
您可以轻松地在扩展中为自定义声明添加便捷的访问器。
extension JWT {
var myClaim: String? {
return self["my_claim"].string
}
}
如果 JWT 格式错误,decode(jwt:)
函数将抛出 JWTDecodeError
。
catch let error as JWTDecodeError {
print(error)
}
本政策定义了 JWTDecode.swift 中对 Xcode、Swift 和平台(iOS、macOS、tvOS 和 watchOS)版本的支持范围。
唯一支持的 Xcode 版本是当前可用于向 App Store 提交应用程序的版本。一旦 Xcode 版本不再受支持,从 JWTDecode.swift 中删除它将不被视为重大更改,并且将在次要版本中完成。
最低支持的 Swift 次要版本是与最旧支持的 Xcode 版本一起发布的版本。一旦 Swift 次要版本不再受支持,从 JWTDecode.swift 中删除它将不被视为重大更改,并且将在次要版本中完成。
我们仅支持任何平台的最近四个主要版本,包括当前主要版本。
一旦平台版本不再受支持,从 JWTDecode.swift 中删除它将不被视为重大更改,并且将在次要版本中完成。 例如,当 iOS 18 发布时,iOS 14 将停止支持,JWTDecode.swift 将能够在次要版本中删除它。
对于 macOS,每年的命名版本被认为是本政策的主要平台版本,无论实际版本号如何。
我们感谢对本仓库的反馈和贡献! 在您开始之前,请参阅以下内容
要提供反馈或报告错误,请在我们的问题跟踪器上提出问题。
请勿在公共 GitHub 问题跟踪器上报告安全漏洞。 负责任的披露计划 详细说明了披露安全问题的程序。
Auth0 是一个易于实施、适应性强的身份验证和授权平台。 要了解更多信息,请查看 为什么选择 Auth0?
本项目采用 MIT 许可证。 有关更多信息,请参阅 LICENSE 文件。