| # Debugging Access Token Issuer |
| |
| This sample demonstrates a Firebase Cloud Function that issues debugging access |
| tokens to authenticated and authorized users. |
| |
| The directory structure looks like this: |
| |
| ```shell |
| server/ |
| | |
| +- firebase.json # Describes properties of the project |
| | |
| +- genkey.sh # Optional script to generate token signing |
| # key and certificates with a self-signed CA |
| | |
| + package.json # npm package file |
| | |
| +- functions/ # Directory containing the function code |
| | |
| +- api_config.SAMPLE.json # A sample configuration |
| | |
| +- .eslintrc.json # Rules for JavaScript linting |
| | |
| +- package.json # npm package file |
| | |
| +- index.js # main source file |
| | |
| +- node_modules/ # directory where the dependencies (declared in |
| # package.json) are installed |
| ``` |
| |
| ## Running the Samples |
| |
| * Setup Firebase Cloud Functions. See Step 1-3 of the guide at |
| [https://firebase.google.com/docs/functions/get-started](https://firebase.google.com/docs/functions/get-started). |
| * Prepare the token signing key and certificate. The key MUST be a RSA key |
| with at least 2048 bits. The certificate MUST contain at least one Subject |
| Alternative Name |
| ([SAN](https://en.wikipedia.org/wiki/Subject_Alternative_Name)). Use |
| `genkey.sh` if signing the certificate with a self-signed CA. |
| * Configure the token issuer in a config file. See `api_config.SAMPLE.json` |
| for an example. The config file contains secret information; do NOT commit |
| it in git. |
| * Deploy the config file by running `firebase functions:config:set |
| api_config="$(cat YOUR_CONFIG.json)"`. |
| * Deploy the Cloud Function. See the instructions at |
| [https://firebase.google.com/docs/functions/manage-functions](hhttps://firebase.google.com/docs/functions/manage-functions). |
| |
| ## License |
| |
| Copyright 2021 Google LLC |
| |
| Licensed to the Apache Software Foundation (ASF) under one or more contributor |
| license agreements. See the NOTICE file distributed with this work for |
| additional information regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the "License"); you may not use |
| this file except in compliance with the License. You may obtain a copy of the |
| License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software distributed |
| under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR |
| CONDITIONS OF ANY KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations under the License. |