Skip to content

11.0.0

Latest

Choose a tag to compare

@FrancoisDevemy5 FrancoisDevemy5 released this 21 Aug 12:55
· 1 commit to master since this release
6a32803

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 scheme which was an alias for redirectUri. redirectUri remains.
    • Renamed the field baseScheme to customScheme.
    • The initializer now stops the program with a preconditionFailure when 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 originWebAuthn a passkey request carries is now validated and normalized like the SdkConfig configured one. This means the call can now throw a ReachFiveError.TechnicalError if the validation fails.

  • application(_:continue:restorationHandler:) and application(_:open:options:) now returns false when neither an SDK flow nor any registered provider consumed the activity or URL, instead of always returning true. If your app also routes universal links or custom-scheme URLs itself, only do so when the call returns false.

  • ProviderCreator: the factory receives the ReachFive instance instead of sub-components, so that the creator can reuse high-level helpers such as buildAuthorizeURL,authWithCode, webviewLogin or the new login(withProvider:…).
    See the Implement a custom provider guide.

  • Provider.login and the native passkey requests takes a Presentation instead of a UIViewController? or an anchor: ASPresentationAnchor to 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-exported UIKit and Foundation through its generated umbrella header, so import Reach5 brought them into scope implicitly. It no longer does: add the explicit import UIKit / import Foundation your files need.

New features

  • Support the b.connect provider: handle the login flow through an external app and add its cico claim to OpenIdUser.
  • Support session devices: listSessionDevices(authToken:) and deleteSessionDevice(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
  • webviewLogin has two new parameters:
    • webSessionMode to shape the ASWebAuthenticationSession callback: .customScheme (default) or .universalLink(_:) (iOS 17.4+).
    • loginUrlFragment to pass key/value pairs in the fragment of the /oauth/authorize URL, so a client's Login URL can customize itself (logo, colors) per calling channel in an orchestrated flow.
  • New WebProvider to register a web provider with a variant and a completion mode (cf. webSessionMode of webviewLogin above). See the Universal-link web providers.
  • New method login(withProvider:…), intended for integrators writing their own Provider: exchanges the ID token issued by a native provider SDK for a ReachFive AuthToken.