Skip to content

Commit f60df5b

Browse files
committed
refactor: Move encoding to compact encoder
1 parent 087e6e7 commit f60df5b

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

Sources/JWT/CompactJSONEncoder.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,12 @@ class CompactJSONEncoder: JSONEncoder {
66
func encodeString<T: Encodable>(_ value: T) throws -> String {
77
return base64encode(try super.encode(value))
88
}
9+
10+
func encodeString(_ value: [String: Any]) -> String? {
11+
if let data = try? JSONSerialization.data(withJSONObject: value) {
12+
return base64encode(data)
13+
}
14+
15+
return nil
16+
}
917
}

Sources/JWT/Encode.swift

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,14 @@ import Foundation
88
public func encode(claims: ClaimSet, algorithm: Algorithm, headers: [String: String]? = nil) -> String {
99
let encoder = CompactJSONEncoder()
1010

11-
func encodeJSON(_ payload: [String: Any]) -> String? {
12-
if let data = try? JSONSerialization.data(withJSONObject: payload) {
13-
return base64encode(data)
14-
}
15-
16-
return nil
17-
}
18-
1911
var headers = headers ?? [:]
2012
if !headers.keys.contains("typ") {
2113
headers["typ"] = "JWT"
2214
}
2315
headers["alg"] = algorithm.description
2416

2517
let header = try! encoder.encodeString(headers)
26-
let payload = encodeJSON(claims.claims)!
18+
let payload = encoder.encodeString(claims.claims)!
2719
let signingInput = "\(header).\(payload)"
2820
let signature = algorithm.sign(signingInput)
2921
return "\(signingInput).\(signature)"

0 commit comments

Comments
 (0)