Social Sign On

In addition to enabling your users to sign on with their email and password, Gravity supports signing in with 500+ social networks using Passport.js Social sign-ons are still tied to an email address, so users can sign in with multiple social accounts and be linked to one central account. Social accounts can even create a password and log in with an email/password combo or social login.

Configuring Facebook

In order to sign in with Facebook, you will need to create an app in the Facebook developer portal and add your app ID and secret to the .env file (you'll be asked to do this during setup, or you can add it manually later).

Please follow the Facebook documentation for the latest guidance on how to do this.

Configuring Twitter

As with Facebook, you will need to create an app in the Twitter developer portal and add your app ID and secret to the .env file.

Please follow the Twitter documentation for the latest guidance on how to do this.

Callback URLs

The default callback URLs are defined in the config file, and follow this structure:

http://localhost:8080/auth/facebook/callback

You will need to add the callback URL to the authorised endpoints in the developer portal for your chosen social network.

Adding More Networks

You can add support for additional social networks in three easy steps:

  1. Add the access keys to the .env file

  2. Add the Passport strategy in socialController.js

  3. Add the provider to socialController.js line 93:

    ...provider === 'google' && { google_id: profile.id },
  4. Add the provider to the user.create model:

    google_id: user.google_id,

Disable the Social Sign-Ons

If you'd like to disable social sign-ons, remove the <SocialSignin/> component from the auth views in the client to remove the buttons and then disable the endpoints in router.js on the server.

Using Social Sign Ons with Gravity Native

To use social sign-ons with Gravity Native on your mobile device, you will need to install ngrok instead of using localhost in your callback URLs.

Please follow the getting started guide on ngrok to set it up.

Please update the callback_url inside the /config folder files and ALSO the baseURL value inside app/config.json

Last updated