JWTDecode 3.2.0-beta.0

JWTDecode 3.2.0-beta.0

测试已测试
语言语言 Swift
许可证 MIT
发布最新版本2024年7月
SPM支持SPM

Hernan ZalazarMartin WalshRita ZerrizuelaSai Venkat Desu维护。



JWTDecode 3.2.0-beta.0

  • Auth0和Rita Zerrizuela提供

JWTDecode.swift

Version CircleCI Coverage Status License

📚 文档🚀 快速开始📃 支持策略💬 反馈

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

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

文档

关于何时删除Xcode、Swift和平台版本不认为是重大变化,请检查支持策略

快速开始

需求

  • iOS 12.0+ / macOS 10.15+ / tvOS 12.0+ / watchOS 6.2+
  • Xcode 13.x / 14.x
  • Swift 5.5+

安装

Swift 包管理器

在 Xcode 中打开以下菜单项

文件 > 添加包...

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

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

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

CocoaPods

将以下行添加到您的 Podfile

pod 'JWTDecode', '~> 3.1'

然后,运行 pod install

Carthage

将以下行添加到您的 Cartfile

github "auth0/JWTDecode.swift" ~> 3.1

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

使用说明

查看所有可用功能,请参阅API 文档

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

JWT 部分

部分 属性
头部字典 jwt.header
JWT 主体中的声明 jwt.body
JWT 签名 jwt.signature

注册声明

声明 属性
aud 受众 jwt.audience
sub 主题 jwt.subject
jti JWT ID jwt.identifier
iss 发布者 jwt.issuer
nbf 开始日期 jwt.notBefore
iat 发布时间 jwt.issuedAt
exp 过期时间 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中删除它**不会被视为重大变更**,并将通过一个**小版本**来实现。

平台

仅支持最新的4个主要平台版本,从

  • iOS 12
  • macOS 10.15
  • macCatalyst 13
  • tvOS 12
  • watchOS 6.2

一旦某个平台版本不再受支持,从JWTDecode.swift中移除它不会被认为是破坏性更改,将会在

一个次版本中完成。例如,当iOS 17发布时,iOS 13将停止受支持,JWTDecode.swift将能够在一个次版本中移除它。

在macOS的情况下,无论实际版本号如何,每年的命名发行版都被视为此政策的主要平台版本。

反馈

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

提出问题

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

漏洞报告

请勿在公开的 GitHub 问题跟踪器上报告安全漏洞。有关安全问题披露程序的详细信息,请参阅负责任公开计划


Auth0 Logo

Auth0 是一个易于实现、可定制的身份验证和授权平台。要了解更多信息,请参阅为什么选择 Auth0?

本项目受 MIT 许可协议的许可。有关更多信息,请参阅许可文件