- add MfA credentials support methods:
- mfaListCredentials, mfaStart, mfaVerify, mfaDeleteCredential
- add MFA step up support methods:
- mfaStart, mfaVerify
- Fix a bug where the provided scope parameter was not transmitted to the backend in
webviewLogin
- Allow the Sandbox app to run in the ARM iPhone simulator
- Add privacy manifest.
- Fix a crash when calling
webviewLogin
in quick succession
- Updated Facebook from 16.2 to 17.0
- Add custom fields in
ProfileAddress
entity.
Warning: There are Breaking Changes
- New module IdentitySdkWeChat for native WeChat Login integration
- Add optional
origin
parameters to most authentification functions to help categorize your inbound traffic
- Fix passwordless flow with email
- The functionality of module
IdentitySdkWebView
has been integrated into the mainIdentitySdkCore
module. ThereforeIdentitySdkWebView
has been deprecated. - The
origin
parameter inNativeLoginRequest
,NewPasskeyRequest
,PasskeySignupRequest
has changed meaning.- Up to now it meant the origin of the webauthn call. There is a new parameter
originWebAuthn
for this - Now
origin
has the same meaning as in all other authentification functions: to help categorize your inbound traffic
- Up to now it meant the origin of the webauthn call. There is a new parameter
- Add a new method in
Provider
andReachFive
:application(_:continue:restorationHandler:)
to handle universal links - Remove an obsolete method in
Provider
andReachFive
:application(_:open:sourceApplication:annotation:)
- New required property
GIDClientID
in property list to use Google SignIn loadLoginWebview(reachfive:state:nonce:scope:origin:)
now returns aFuture
and instead of taking aPromise
as argumentPasskeySignupRequest
now has its first parameter renamed frompasskeyPofile
topasskeyProfile
- New dependency in Core: DeviceKit
- Updated GoogleSignIn from 6 to 7
- Updated Facebook from 14.1 to 16.2
- Updated Alamofire to 5.8
- Updated CryptoSwift to 1.8
- Support for Passkey in iOS 16 and up:
- Signup and login are supported in various UI modes
- Registering a new passkey on an exiting profile (with or without preexisting passkeys)
- List all passkeys associated to a profile
- Delete a passkey
- Support for native modal UI to automatically present password credentials
Vastly improved demo app:
- Features a new tab bar navigation UI for easy access to the main demo, profile page and individual functions
- Demo tab that features login and signup using password or passkey
- Profile tab with more profile info, list of passkeys, and buttons to register passkey, change phone number or password
- Access every passkey UI mode individually
- Introducing Mac Catalyst support to easily launch the app outside a simulator on a real Mac device
- Better iPad support
- Support for Dark Mode
- Improved error messages when using the
message()
function or when printing to the console - Update the Readme with instructions on configuring and running the demo app
- Allow login with webview using a WKWebview.
- Add new address complement field in the
ProfileAddress
model
- Allow login with password using a custom identifier instead of an email or phone number.
- Update dependency
GoogleSignIn
from 6.2.2 to 6.2.4
Warning: There are Breaking Changes
- The SDK mandates a minimum version of iOS 13
loginWithPassword
takes either anemail
or aphoneNumber
instead of ausername
- New method
Provider.application(_:didFinishLaunchingWithOptions:)
to call at startup to initialize the social providers - New required key
FacebookClientToken
to configure Facebook Login - Parameter
viewController
inProvider.login(scope:origin:viewController:)
is now mandatory - Parameter
viewController
inProvider.login(scope:origin:viewController:)
must also conform to the protocolASWebAuthenticationPresentationContextProviding
when usingWebViewProvider
- Some error messages may have changed
- Login using a webview:
AppDelegate.reachfive().webviewLogin
WebViewProvider
now usesASWebAuthenticationSession
instead ofSFSafariViewController
for better security. The associated webview UI is different.- Don't ask again to confirm app access for Facebook Login when a user still has a valid Access Token
loginWithPassword
calls/identity/v1/password/login
instead of/oauth/token
- Update dependency
Alamofire
from 5.6.1 to 5.6.2 - Update dependency
BrightFutures
from 8.1.0 to 8.2.0 - Update dependency
CryptoSwift
from 1.3.8 to 1.5.1 - Update dependency
FBSDKCoreKit
from 9.0.0 to 14.1.0 - Update dependency
FBSDKLoginKit
from 9.0.0 to 14.1.0 - Update dependency
GoogleSignIn
from 5.0.2 to 6.2.2 - Remove dependencies
EllipticCurveKeyPair
,KeychainAccess
,PromiseKit
,FacebookCore
,FacebookLogin
- Remove
WebAuthnKit
- Update
WebAuthnKit
to 0.9.6
- Replace deprecated endpoint
/identity/v1/me
by/identity/v1/userinfo
- Update
Alamofire
to version 5.6.1 - Update
BrightFutures
to version 8.1.0
- Upgrade dependency
GoogleSignIn
to version 5.0.2
- Update
FBSDKCoreKit
andFBSDKLoginKit
to version 9.x - Add the redirectURL parameter in the signup method
- Upgrade dependencies
CryptoSwift
to version 1.3.2 - Implement keychain access & refresh token on startup
- Update
Alamofire
to version 5.x - Update
Cryptoswift
to latest version
- The
sub
claim of an ID token is now correctly deserialized in theid
field of theOpenIdUser
model ApiError
now has an additional propertyerrorMessageKey
- Fix
SdkConfig
description in README
- Upgrade IdentitySdkCore dependency in IdentitySdkWebview
- App-specific scheme handling (pattern
reachfive-${clientId}://callback
). This custom scheme has to be specified in info.plist application and passed during SDK configuration inSdkConfig
object:
SdkConfig(
domain: "my-reachfive-url",
clientId: "my-reachfive-client-id",
scheme: "my-reachfive-scheme"
)
- This custom scheme will be used as a redirect URL by default in payload of Start Passwordless call.
- Fix login with web provider issue (assert() raising a fatal error)
- Fix a PKCE code storage issue
- Fix the
isDefault
field in address profiles - Fix
birthdate
,bio
,company
,external_id
,locale
,middle_name
,nickname
,picture
andtos_accepted_at
field in profile
- Fix unauthorized errors
- Refactor http errors handling
- Add api errors to
ReachFiveError.AuthFailure
error
RequestErrors
is renamed toApiError
ReachFiveError.AuthFailure
contain an optional parameter of typeApiError
- Fix get profile without custom fields
- fix http errors handling
- Fix http errors handling
- Support of refreshToken
- Passwordless code verifification
- Passwordless intercept magic link
- The login with provider requires now the
scope
parameterlogin(scope: [String]?, origin: String, viewController: UIViewController?).
- The
signedUid
field was removed from the Profile model.
- Use Futures instead of callbacks, we use the BrightFutures library
- Passwordless Start, it allows to launch the passwordless authentication flow
- Update password
We use Future instead callbacks, you need to transform yours callbacks into the Future
AppDelegate.reachfive()
.loginWithPassword(username: email, password: password)
.onSuccess { authToken in
// Handle success
}
.onFailure { error in
// Handle error
}
instead of
AppDelegate.reachfive()
.loginWithPassword(
username: email,
password: password,
callback: { response in
switch response {
case .success(let authToken):
// Handle success
case .failure(let error):
// handle error
}
}
)
Use SFSafariViewController instead of WKWebView
Fix UserConsent
Add getProfile
New modular version of the Identity SDK iOS: