Android app
This page shows how to use the Android SDK with authentication journeys that provide social login and registration.
The first callback your app encounters is the SelectIdPCallback
, which lets the user choose their IdP.
You use the getProviders()
method to display the available providers, and setValue
when the user makes a choice:
List<SelectIdPCallback.IdPValue> providers = callback.getProviders();
callback.setValue(chosenProvider);
The next callback is the IdPCallback
.
You call the signIn()
method on the IdPCallback
class:
callback.signIn(null, new FRListener<Void>() {
@Override
public void onSuccess(Void result) {
//proceed to next node
node.next();
}
@Override
public void onException(Exception e) {
//handle error
}
});
This method directs the user to authenticate with the IdP.
When the user authenticates with that provider,
the result is automatically added to the IdPCallback
with the following methods:
idPCallback.setTokenType(String tokenType)
idPCallback.setToken(String token)
In order to override the automatic provider detection, and identify the returned provider manually,
you must check the
|
SDK configuration
For Google Sign-In, add the following dependency to the build.gradle
file:
implementation 'com.google.android.gms:play-services-auth:19.0.0'
For Facebook Login:
-
Add the Facebook dependency to the
build.gradle
file:implementation 'com.facebook.android:facebook-login:16.0.0'
-
Add the following to the
AndroidManifest.xml
file:<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/> <activity android:name="com.facebook.FacebookActivity" android:configChanges= "keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" /> <activity android:name="com.facebook.CustomTabActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="@string/fb_login_protocol_scheme" /> </intent-filter> </activity>
-
Add the following attributes to the
string.xml
file:<string name="facebook_app_id">Your Facebook AppId</string> <string name="fb_login_protocol_scheme">Your Facebook prototol scheme</string>
To find the values of
facebook_app_id
andfb_login_protocol_scheme
, go to Facebook Developer Console, select your app, then Facebook Login > Quickstart > Android, and follow the step to configure your application:
Apple
For Sign in with Apple:
-
Add the
AppAuth
dependency to thebuild.gradle
file:implementation 'net.openid:appauth:0.11.1'
-
Add the following to the
AndroidManifest.xml
file:<activity android:name="net.openid.appauth.RedirectUriReceiverActivity" tools:node="replace"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="@string/apple_scheme" /> </intent-filter> </activity>
-
Add the following attribute to the
string.xml
file:<string name="apple_scheme">Your Redirect after form post URL Scheme</string>
To find the value of
apple_sheme
, go to Services > Social Identity Provider Service > Secondary Configurations > Apple:From above example, the scheme would be
org.forgerock.demo
.