You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.6 KiB
66 lines
2.6 KiB
7 months ago
|
# 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.
|