Deserialize payload into dictionary
This commit is contained in:
@@ -8,6 +8,4 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class Payload: Codable {
|
typealias Payload = [String: Any]
|
||||||
|
|
||||||
}
|
|
||||||
|
@@ -40,7 +40,7 @@ extension JWT {
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
let header = try decoder.decode(Header.self, from: headerData)
|
let header = try decoder.decode(Header.self, from: headerData)
|
||||||
let payload = try decoder.decode(Payload.self, from: payloadData)
|
let payload = try JSONSerialization.jsonObject(with: payloadData) as? Payload ?? [:]
|
||||||
let signature = Signature()
|
let signature = Signature()
|
||||||
self.init(header: header, payload: payload, signature: signature)
|
self.init(header: header, payload: payload, signature: signature)
|
||||||
} catch {
|
} catch {
|
||||||
|
@@ -21,4 +21,15 @@ class JotTests: XCTestCase {
|
|||||||
XCTAssertEqual(jwt.header.typ, JwtType.jwt)
|
XCTAssertEqual(jwt.header.typ, JwtType.jwt)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testJWTPayload() {
|
||||||
|
guard let jwt = JWT(token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJqZ3JpZmZpbiIsIm5hbWUiOiJKYW1lcyBHcmlmZmluIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.DXfNW7Gzvie7LIl5-HSG9clm3sjeglYG2uNmsPvcNerBQbzLI06vys4YqqCMtrWKEFij_y2hKGP9YFdHSRMdtyVcGEXmYP6H6E62uGhASmGFzEHeSa6B1X1-v8lRt_YpIGEXhkUnxfhdcQ90HJlNfajv0ndnRFk8YJxRkmr99OI") else {
|
||||||
|
XCTFail()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
XCTAssertEqual(jwt.payload["sub"] as? String, "jgriffin")
|
||||||
|
XCTAssertEqual(jwt.payload["name"] as? String, "James Griffin")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user