Releases: auth0/JWTDecode.swift
Releases · auth0/JWTDecode.swift
2.1.0
2.0.0
Support for Xcode 8 & Swift 3.
Following Swift API Guidelines, all functions and methods requires a parameter label.
So now to decode a token
try JWTDecode.decode(jwt: "token")Also now JWTDecode errors conforms the protocol LocalizableError
public enum DecodeError: LocalizedError {
case invalidBase64Url(String)
case invalidJSON(String)
case invalidPartCount(String, Int)
public var localizedDescription: String {
switch self {
case .invalidJSON(let value):
return NSLocalizedString("Malformed jwt token, failed to parse JSON value from base64Url \(value)", comment: "Invalid JSON value inside base64Url")
case .invalidPartCount(let jwt, let parts):
return NSLocalizedString("Malformed jwt token \(jwt) has \(parts) parts when it should have 3 parts", comment: "Invalid amount of jwt parts")
case .invalidBase64Url(let value):
return NSLocalizedString("Malformed jwt token, failed to decode base64Url value \(value)", comment: "Invalid JWT token base64Url value")
}
}
}
1.2.0
Support for Xcode 8 & Swift 2.3.
1.1.0
Changed:
- Rework how claims are decoded #35 (hzalaz)
- Add expired method to A0JWT #25 (wkoszek)
- Require only App Extension Safe API (in iOS) #20 (hzalaz)
Added:
Deprecated:
To provide a better experience while dealing with claims and converting their values to Swift types, we deprecated the following method to retrive JWT claims
public func claim<T>(name: String) -> T?In favor of the following method to retrieve the claim
let claim = jwt.claim(name: "claim_name")and then you can try converting it's value to the proper type like
if let email = claim.string {
print("JWT had email \(email)")
}The supported conversions are:
var string: String?
var integer: Int?
var double: Double?
var date: NSDate?
var array: [String]?