Breaking changes
-
Changed type of redirect URL fields to URL instead of String
-
SdkConfig:- As above, changed type of redirect URL fields to URL instead of String
- Removed the field
schemewhich was an alias forredirectUri.redirectUriremains. - Renamed the field
baseSchemetocustomScheme. - The initializer now stops the program with a
preconditionFailurewhen validations are not met: scheme, domain, redirect URLs and originWebAuthn are validated early instead of failing during a network call or silently never matching any incoming callback.
-
The
originWebAuthna passkey request carries is now validated and normalized like theSdkConfigconfigured one. This means the call can now throw aReachFiveError.TechnicalErrorif the validation fails. -
application(_:continue:restorationHandler:)andapplication(_:open:options:)now returnsfalsewhen neither an SDK flow nor any registered provider consumed the activity or URL, instead of always returningtrue. If your app also routes universal links or custom-scheme URLs itself, only do so when the call returnsfalse. -
ProviderCreator: the factory receives theReachFiveinstance instead of sub-components, so that the creator can reuse high-level helpers such asbuildAuthorizeURL,authWithCode,webviewLoginor the newlogin(withProvider:…).
See the Implement a custom provider guide. -
Provider.loginand the native passkey requests takes aPresentationinstead of aUIViewController?or ananchor: ASPresentationAnchorto handle the different type of implicit conformance. -
CocoaPods support is dropped, the SDK is distributed exclusively with Swift Package Manager.
If you were integrating with CocoaPods, note that the pod re-exportedUIKitandFoundationthrough its generated umbrella header, soimport Reach5brought them into scope implicitly. It no longer does: add the explicitimport UIKit/import Foundationyour files need.
New features
- Support the b.connect provider: handle the login flow through an external app and add its
cicoclaim to OpenIdUser. - Support session devices:
listSessionDevices(authToken:)anddeleteSessionDevice(id:authToken:) SdkConfig:- init takes a new optional parameter
originWebAuthn, so the WebAuthn origin can be configured once instead of being repeated on every passkey request - new field
normalizedDomain: the normalized domain according to RFC 6454 for comparing hosts
- init takes a new optional parameter
webviewLoginhas two new parameters:webSessionModeto shape theASWebAuthenticationSessioncallback:.customScheme(default) or.universalLink(_:)(iOS 17.4+).loginUrlFragmentto pass key/value pairs in the fragment of the/oauth/authorizeURL, so a client's Login URL can customize itself (logo, colors) per calling channel in an orchestrated flow.
- New
WebProviderto register a web provider with avariantand a completionmode(cf.webSessionModeofwebviewLoginabove). See the Universal-link web providers. - New method
login(withProvider:…), intended for integrators writing their ownProvider: exchanges the ID token issued by a native provider SDK for a ReachFiveAuthToken.