测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | BSD |
发布最新发布 | 2017年9月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✓ |
由 Kyle Fuller 维护。
Swift 对 JSON Web Token 的实现。
CocoaPods 是推荐的安装方法。
pod 'JSONWebToken'
import JWT
JWT.encode(claims: ["my": "payload"], algorithm: .hs256("secret".data(using: .utf8)!))
var claims = ClaimSet()
claims.issuer = "fuller.li"
claims.issuedAt = Date()
claims["custom"] = "Hi"
JWT.encode(claims: claims, algorithm, algorithm: .hs256("secret".data(using: .utf8)))
JWT.encode(.hs256("secret".data(using: .utf8))) { builder in
builder.issuer = "fuller.li"
builder.issuedAt = Date()
builder["custom"] = "Hi"
}
当解码 JWT 时,您必须提供一个或多个算法和密钥。
do {
let claims: ClaimSet = try JWT.decode("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e30.2_8pWJfyPup0YwOXK7g9Dn0cF1E3pdn299t4hSeJy5w", algorithm: .hs256("secret".data(using: .utf8)!))
print(claims)
} catch {
print("Failed to decode JWT: \(error)")
}
当 JWT 可能用一种算法或许多密钥签名时
try JWT.decode("eyJh...5w", algorithms: [
.hs256("secret".data(using: .utf8)!),
.hs256("secret2".data(using: .utf8)!),
.hs512("secure".data(using: .utf8)!)
])
此库支持以下声明验证
iss
) 声明exp
) 声明nbf
) 声明iat
) 声明aud
) 声明此库支持以下算法
none
- 未加密的 JWThs256
- 使用 SHA-256 哈希算法的 HMAC(默认值)hs384
- 使用 SHA-384 哈希算法的 HMAChs512
- 使用 SHA-512 哈希算法的 HMACJSONWebToken 在 BSD 许可证下发布。有关更多信息,请参阅 LICENSE。