Deserialize payload into dictionary
This commit is contained in:
@@ -8,6 +8,4 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
class Payload: Codable {
|
||||
|
||||
}
|
||||
typealias Payload = [String: Any]
|
||||
|
@@ -40,7 +40,7 @@ extension JWT {
|
||||
|
||||
do {
|
||||
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()
|
||||
self.init(header: header, payload: payload, signature: signature)
|
||||
} catch {
|
||||
|
@@ -21,4 +21,15 @@ class JotTests: XCTestCase {
|
||||
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