Skip to content

Commit

Permalink
Fix iOS biometric key fail on authenticate
Browse files Browse the repository at this point in the history
As per https://datatracker.ietf.org/doc/html/rfc7515#section-3.1, jws
encoding should be url encoded base64 instead of standard base64
  • Loading branch information
IniZio committed Apr 5, 2024
1 parent 9d3c05b commit 6d9ed5a
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions ios/Classes/SwiftAuthgearPlugin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -785,15 +785,15 @@ public class SwiftAuthgearPlugin: NSObject, FlutterPlugin, ASWebAuthenticationPr
private func signJWT(privateKey: SecKey, header: [String: Any], payload: [String: Any]) -> Result<String, Error> {
let headerJSON = JSONSerialization.serialize(value: header)
let payloadJSON = JSONSerialization.serialize(value: payload)
let headerString = headerJSON.base64EncodedString()
let payloadString = payloadJSON.base64EncodedString()
let headerString = headerJSON.base64urlEncodedString()
let payloadString = payloadJSON.base64urlEncodedString()
let strToSign = "\(headerString).\(payloadString)"
let dataToSign = strToSign.data(using: .utf8)!
switch self.signData(privateKey: privateKey, data: dataToSign) {
case .failure(let error):
return .failure(error)
case .success(let signature):
let signatureStr = signature.base64EncodedString()
let signatureStr = signature.base64urlEncodedString()
let jwt = "\(strToSign).\(signatureStr)"
return .success(jwt)
}
Expand Down

0 comments on commit 6d9ed5a

Please sign in to comment.