JWTDecode.swift

Version Build Status Coverage Status License

📚 文档 • 🚀 入门指南 • 📃 支持政策 • 💬 反馈

此库不验证 JWT。任何格式正确的 JWT 都可以从 Base64URL 解码。

从 v2 迁移?请查看 迁移指南

文档

重要提示

查看支持政策,了解何时放弃 Xcode、Swift 和平台版本将不被视为重大更改

入门指南

要求

安装

Swift Package Manager

在 Xcode 中打开以下菜单项

文件 > 添加包...

搜索或输入包 URL 搜索框中输入此 URL

https://github.com/auth0/JWTDecode.swift

然后,选择依赖规则并按 添加包

Cocoapods

将以下行添加到您的 Podfile

pod 'JWTDecode', '~> 3.2'

然后,运行 pod install

Carthage

将以下行添加到您的 Cartfile

github "auth0/JWTDecode.swift" ~> 3.2

然后,运行 carthage bootstrap --use-xcframeworks

用法

请参阅 API 文档 ↗ 中的所有可用功能

  1. 导入框架
import JWTDecode
  1. 解码令牌
let jwt = try decode(jwt: token)    

JWT 部分

部分 属性
头部字典 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

唯一支持的 Xcode 版本是当前可用于向 App Store 提交应用程序的版本。一旦 Xcode 版本不再受支持,从 JWTDecode.swift 中删除它将不被视为重大更改,并且将在次要版本中完成。

Swift

最低支持的 Swift 次要版本是与最旧支持的 Xcode 版本一起发布的版本。一旦 Swift 次要版本不再受支持,从 JWTDecode.swift 中删除它将不被视为重大更改,并且将在次要版本中完成。

平台

我们仅支持任何平台的最近四个主要版本,包括当前主要版本。

一旦平台版本不再受支持,从 JWTDecode.swift 中删除它将不被视为重大更改,并且将在次要版本中完成。 例如,当 iOS 18 发布时,iOS 14 将停止支持,JWTDecode.swift 将能够在次要版本中删除它。

对于 macOS,每年的命名版本被认为是本政策的主要平台版本,无论实际版本号如何。

反馈

贡献

我们感谢对本仓库的反馈和贡献! 在您开始之前,请参阅以下内容

提出问题

要提供反馈或报告错误,请在我们的问题跟踪器上提出问题

漏洞报告

请勿在公共 GitHub 问题跟踪器上报告安全漏洞。 负责任的披露计划 详细说明了披露安全问题的程序。


Auth0 Logo

Auth0 是一个易于实施、适应性强的身份验证和授权平台。 要了解更多信息,请查看 为什么选择 Auth0?

本项目采用 MIT 许可证。 有关更多信息,请参阅 LICENSE 文件。