Skip to content

Commit 6a76137

Browse files
authored
Passkey related bugs fixed (#21)
* Incomplete error message issue fixed on Passkey registration failure * Changed the onChange callback to onReceive as the later best works with @published publisher cause it guarantees response to a value change independent of SwiftUI's rendering pipeline (#19) * Step-up flow fixed (#20) * Bug fixed in Step-up flow fixed. Missing scope being passed causing the flow to trigger recursively * Failing test case fixed * Added documentation for scope related changes * Fixed bugs (#18) * Fixed the following bugs: 1. Clear web cache on logout. 2. UI bug of logout button overlapping profile options on small screen at Welcome page. * Added descriptive comment * Passkeys implementation issues fixed
1 parent df600e8 commit 6a76137

3 files changed

Lines changed: 21 additions & 12 deletions

File tree

AppUIComponents/LoginOptions/LoginOptionsViewModel.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ final class LoginOptionsViewModel: ObservableObject {
3737

3838
return (isAuthenticated != nil) ? .welcome : nil
3939
} catch {
40-
debugPrint("Check authentication failed!!!")
40+
debugPrint("Check authentication failed!!!. Error: \(error)")
4141
return nil
4242
}
4343
}

Auth0UniversalComponents/AuthMethodsHome/Presentation/MyAccountAuthMethodsViewModel.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ final class MyAccountAuthMethodsViewModel: ObservableObject, ErrorViewModelHandl
151151
self.viewComponents = [.emptyFactors]
152152
}
153153
} catch {
154+
debugPrint("Error occured in My Account Auth View: \(error)")
154155
await handle(error: error, scope: "openid read:me:factors read:me:authentication_methods") { [weak self] in
155156
Task {
156157
await self?.loadMyAccountAuthViewComponentData()

Auth0UniversalComponents/Passkeys/Presentation/PasskeysEnrollmentViewModel.swift

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ final class PasskeysEnrollmentViewModel: NSObject,
7979
enrollPasskey()
8080
} catch {
8181
showLoader = false
82-
errorViewModel = Auth0UIComponentError.unknown().errorViewModel { [weak self] in
82+
errorViewModel = Auth0UIComponentError.unknown(message: error.localizedDescription).errorViewModel { [weak self] in
8383
Task { await self?.startEnrollment() }
8484
}
8585
}
@@ -129,24 +129,32 @@ final class PasskeysEnrollmentViewModel: NSObject,
129129
func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: any Error) {
130130
showLoader = false
131131

132-
if let authError = error as? ASAuthorizationError, authError.code != .canceled {
133-
errorViewModel = Auth0UIComponentError.unknown().errorViewModel { [weak self] in
134-
Task {
135-
await self?.startEnrollment()
136-
}
137-
}
138-
} else {
132+
guard let authError = error as? ASAuthorizationError else {
139133
Task { [weak self] in
140134
await self?.handle(
141135
error: error,
142136
scope: "openid create:me:authentication_methods",
143137
retryCallback: {
144-
Task {
145-
await self?.startEnrollment()
146-
}
138+
Task { await self?.startEnrollment() }
147139
}
148140
)
149141
}
142+
return
143+
}
144+
145+
switch authError.code {
146+
case .canceled:
147+
break
148+
case .failed:
149+
// Code 1004: platform rejected the request — most commonly a domain association
150+
// misconfiguration (entitlements webcredentials entry or AASA file on the server).
151+
errorViewModel = Auth0UIComponentError.unknown(message: authError.localizedDescription).errorViewModel { [weak self] in
152+
Task { await self?.startEnrollment() }
153+
}
154+
default:
155+
errorViewModel = Auth0UIComponentError.unknown().errorViewModel { [weak self] in
156+
Task { await self?.startEnrollment() }
157+
}
150158
}
151159
}
152160

0 commit comments

Comments
 (0)