Skip to content

apolloai/virgil-e3kit-firebase-func

 
 

Repository files navigation

Configure your Firebase function to generate Virgil JWT

Greenkeeper badge

This repository contains a backend's function that connects your Virgil and Firebase accounts for implementing end-to-end encryption.

Prerequisites

  • Node version from 10 to 13

You can use one of node version managers to switch the version: n or nvm

Configure Your Firebase Project

We assume that you already have a Firebase Project. If you don't, please create one now at your Firebase Console.

Configure User Authentication

If you haven't already, set up Sign-in method in your Firebase Project by enabling any of the Sign-in providers. For the purposes of this tutorial it doesn't matter which sign-in provider you choose.

To set up your Sign-in method, go to your Firebase Console and navigate to Authentication, under Develop. Go to the Sign-in method tab and set up your preferred sing-in method(s).

Deploy the Firebase function

This Firebase function will connect Firebase's and Virgil's authentication via JWT tokens.

  • Clone this repository

    git clone https://github.com/VirgilSecurity/virgil-e3kit-firebase-func.git
    cd virgil-e3kit-firebase-func
  • Install Firebase CLI if you haven't already.

    npm install -g firebase-tools
  • Start up the Firebase CLI

    firebase login
  • Connect this repository to your Firebase project

    firebase use --add
  • Select your firebase project from the list and press ENTER.

  • Type an alias for your project and press ENTER again.

  • Sign up for a free Virgil account

  • Get your Virgil Credentials:

  1. Navigate to the Virgil Dashboard -> Your Application -> E3Kit Section.
  2. Generate .env in the .env file section.
  3. Download the generated file, paste it into the project root folder and rename it to .env.
  • To install dependencies and configure Virgil Credentials run:

    cd functions
    npm install
    npm run configure

    In case you receive a message like warning found n vulnerabilities printed in the console after running the npm install, there is a potential security vulnerability in one of the demo's dependencies. Don't worry, this is a normal occurrence and in the majority of cases, is fixed by updating the packages. To install any updates, run the command npm audit fix. If some of the vulnerabilities persist after the update, check the results of the npm audit to see a detailed report. The report includes instructions on how to act on this information.

  • If npm install fails, make sure you have a compatible node version. See in Prerequisites.

  • Windows users only: In firebase.json rename $RESOURCE_DIR to %RESOURCE_DIR%

  • Optional: change the field used for identity to email, phone_number or any unique value in functions/src/index.ts . Default is uid (Firebase unique id)

  • Deploy the Firebase function:

    npm run deploy

Troubleshooting

Error: Error parsing triggers: Cannot find module '../virgil_crypto_node.node'

Make sure you've followed the instructions in the README. If you did so, try running this command:

node node_modules/virgil-crypto/scripts/download-node-addon.js

TypeError: Cannot destructure property app_id of 'undefined' or 'null'.

You most likely forgot to generate the .env file or named it incorrectly. Make sure the file is named exactly .env (no '.txt' at the end and no other extensions) and contains your keys in a similar format:

APP_ID=40afa3ea[...]520c1be
APP_KEY_ID=0e6f[...]fd3476c3cf
APP_KEY=MC4CAQt[...]7DprlzC7gG1

About

Backend's function that connects your Virgil and Firebase accounts for implementing end-to-end encryption

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 62.1%
  • TypeScript 37.9%