Expo Facebook Login
How to use the Expo API to log into Facebook and authenticate on AWS Amplify.
If using Expo, first you need to follow the setup instructions.
https://docs.expo.io/versions/latest/sdk/facebook
tl;dr
- Head to
developers.facebook.comand set up the login. - Update
app.jsonto look like the following:
{
"expo": {
"sdkVersion": "27.0.0",
"privacy": "unlisted",
"name": "Exposition",
"icon": "./assets/icon.png",
"version": "1.0.0",
"slug": "nodular-exposition",
"facebookScheme": "<% fromFacebook %>",
"facebookAppId": "<% fromFacebook %>",
"facebookDisplayName": "Exposition",
"ios": {
"bundleIdentifier": "com.nodular.exposition"
},
"android": {
"package": "com.nodular.exposition"
}
}
}
- Install the ExpoFacebook common js module.
- Update the code flow for Amplify to be similar to the one provided from their website:
FB.login(function (response) {
// Check if the user logged in successfully.
if (response.authResponse) {
console.log("You are now logged in.");
// Add the Facebook access token to the Cognito credentials login map.
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: "IDENTITY_POOL_ID",
Logins: {
"graph.facebook.com": response.authResponse.accessToken,
},
});
// Obtain AWS credentials
AWS.config.credentials.get(function () {
// Access AWS resources here.
});
} else {
console.log("There was a problem logging you in.");
}
});
- Ensure auth is added to the project
wsmobile user-signin configureand selectingAdvanced>Add Facebook.