providerCreator
providerCreator is a protocol that defines specific social login providers (e.g., Google, Facebook, Apple) available in our iOS SDK.
These specific providers use native calls or external libraries to authenticate users.
All providers except Apple that you configure in the ReachFive Console for which you don’t use a specific provider creator will authenticate through an ASWebAuthenticationSession.
You should define and configure these providers when you configure the iOS SDK.
Examples
static let reachfive: ReachFive = ReachFive(
sdkConfig: sdkRemote,
providersCreators: [
GoogleProvider(),
FacebookProvider(),
AppleProvider(variant: "ios_native"),
WeChat(),
WebProvider(name: .bconnect, variant: "natif", mode: .customScheme)
]
)
Available provider creators
The providers who have a variant parameter have the following algorithm to choose a variant configured on the console.
-
If a variant is provided, the variant with the exact name, irrespective of case, is chosen. If no variant matches, the algorithm chooses the variant as if no variant was provided.
-
If no variant is provided, the first variant containing
iosin its name, irrespective of case, if any, is chosen. Otherwise, the default variant is chosen.
| Name | Description | ||||||
|---|---|---|---|---|---|---|---|
The object for configuring Google native provider for our iOS SDK. Optionally takes a variant parameter.
|
|||||||
The object for configuring Facebook native provider for our iOS SDK. This provider takes three optional parameters:
|
|||||||
Optionally takes a variant parameter.
|
|||||||
The object for configuring WeChat Connect for our iOS SDK.
|
|||||||
The object for configuring a web-only provider — one with no native SDK component, authenticated entirely through an Takes a
|
Use a WebProvider with .universalLink (iOS 17.4+)
Use this only when the OAuth redirect_uri must be the provider’s https universalLink, intercepted inside the authentication sheet.
This mode cannot complete a login that leaves the app for a third-party app.
There is no fallback below iOS 17.4: login() fails with a TechnicalError if the OS is too old or the provider has no universalLink in its backend configuration.
-
Register
WebProviderwithmode: .universalLink.The URL comes from the provider’s backend configuration; you do not pass it in.
-
Add
webcredentials:${host}and the matching AASA section (see guides/apple-app-site-association.adoc#webcredentials).
| None of these fit your case? See Implement a custom provider to implement your own. |