@gigster/module-loopback-firebase-authentication

Role | Name | Email | Slack ---- | ---- | ----- | ----- *Developer* | Name | [simon@gigster.com](mailto:simon@gigster.com) | [@fridiculous]

Usage no npm install needed!

<script type="module">
  import gigsterModuleLoopbackFirebaseAuthentication from 'https://cdn.skypack.dev/@gigster/module-loopback-firebase-authentication';
</script>

README

Loopback Firebase Authentication

Role Name Email Slack
Developer Name simon@gigster.com [@fridiculous]

Overview

This module enables a Firebase SDK with a loopback backend. By using this module, the api returns a firebaseAccessToken with when a user signs in via user/login endpoint. This token can then be used to sign into firebase from a client application.

See (using custom auth with Firebase docs)[https://firebase.google.com/docs/auth/web/custom-auth]

Usage

In your gig.yaml please update your modules as such:

  modules:
    - name: loopback-models
      location: >-
        https://github.com/liquidlabs-co/gig-modules/tree/master/block/loopback-models
      spec: {}
    - name: loopback-authentication
      location: >-
        https://github.com/liquidlabs-co/gig-modules/tree/master/block/loopback-authentication
      spec:
        webEnabled: true
        providers:
          local: {}
    - name: loopback-firebase-authentication
      location: >-
      'https://github.com/liquidlabs-co/gig-modules/tree/master/block/loopback-firebase-authentication'
      spec: {}

There is no specification for this module.

Dependencies

This is dependant on the loopback framework and these two other modules

  • loopback-models
  • loopback-authentication

Environment Variables

Make a shell script to export your environment variables.

export FIREBASE_PROJECT=
export FIREBASE_PROJECT_KEY_ID=
export FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n  -----END PRIVATE KEY-----\n"
export FIREBASE_CLIENT_EMAIL=
export FIREBASE_CLIENT_ID=
export FIREBASE_CLIENT_X509_CERT_URL=

To get your environment variables for the firebase SDK, follow the instructions at the firebase admin docs

Generation

To generate this playground, try the following command

gig generate --path ../gig-modules/block/loopback-firebase-authentication/playground --verbose

Models

The module contributes the following models to the project.

Model Attribute Description
accessToken firebaseAccessToken the firebase access token used to authenticate with the firebase backend for a given user

Troubleshooting

To troubleshoot this, try to login via the api and see if a firebaseAccessToken is returned along with the user.

Tests

Module tests are defined using a test/scenarios.yaml file. This file defines the set of example gigs that we generate as part of integration testing. To run all tests, run yarn test at the root of this module.

Each scenario is generated in test/scenario/<name> which you can then cd into and run the actual app. For a scenario called default, this is done via:

cd test/scenario/default
yarn install

# Run tests.
yarn test

# Start the app.
yarn start

TODO