123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- /*! firebase-admin v12.1.1 */
- /*!
- * @license
- * Copyright 2021 Google Inc.
- *
- * Licensed 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.
- */
- /**
- * Interface representing an App Check token.
- */
- export interface AppCheckToken {
- /**
- * The Firebase App Check token.
- */
- token: string;
- /**
- * The time-to-live duration of the token in milliseconds.
- */
- ttlMillis: number;
- }
- /**
- * Interface representing App Check token options.
- */
- export interface AppCheckTokenOptions {
- /**
- * The length of time, in milliseconds, for which the App Check token will
- * be valid. This value must be between 30 minutes and 7 days, inclusive.
- */
- ttlMillis?: number;
- }
- /**
- * Interface representing options for the {@link AppCheck.verifyToken} method.
- */
- export interface VerifyAppCheckTokenOptions {
- /**
- * To use the replay protection feature, set this to `true`. The {@link AppCheck.verifyToken}
- * method will mark the token as consumed after verifying it.
- *
- * Tokens that are found to be already consumed will be marked as such in the response.
- *
- * Tokens are only considered to be consumed if it is sent to App Check backend by calling the
- * {@link AppCheck.verifyToken} method with this field set to `true`; other uses of the token
- * do not consume it.
- *
- * This replay protection feature requires an additional network call to the App Check backend
- * and forces your clients to obtain a fresh attestation from your chosen attestation providers.
- * This can therefore negatively impact performance and can potentially deplete your attestation
- * providers' quotas faster. We recommend that you use this feature only for protecting
- * low volume, security critical, or expensive operations.
- */
- consume?: boolean;
- }
- /**
- * Interface representing a decoded Firebase App Check token, returned from the
- * {@link AppCheck.verifyToken} method.
- */
- export interface DecodedAppCheckToken {
- /**
- * The issuer identifier for the issuer of the response.
- * This value is a URL with the format
- * `https://firebaseappcheck.googleapis.com/<PROJECT_NUMBER>`, where `<PROJECT_NUMBER>` is the
- * same project number specified in the {@link DecodedAppCheckToken.aud | aud} property.
- */
- iss: string;
- /**
- * The Firebase App ID corresponding to the app the token belonged to.
- * As a convenience, this value is copied over to the {@link DecodedAppCheckToken.app_id | app_id} property.
- */
- sub: string;
- /**
- * The audience for which this token is intended.
- * This value is a JSON array of two strings, the first is the project number of your
- * Firebase project, and the second is the project ID of the same project.
- */
- aud: string[];
- /**
- * The App Check token's expiration time, in seconds since the Unix epoch. That is, the
- * time at which this App Check token expires and should no longer be considered valid.
- */
- exp: number;
- /**
- * The App Check token's issued-at time, in seconds since the Unix epoch. That is, the
- * time at which this App Check token was issued and should start to be considered
- * valid.
- */
- iat: number;
- /**
- * The App ID corresponding to the App the App Check token belonged to.
- * This value is not actually one of the JWT token claims. It is added as a
- * convenience, and is set as the value of the {@link DecodedAppCheckToken.sub | sub} property.
- */
- app_id: string;
- [key: string]: any;
- }
- /**
- * Interface representing a verified App Check token response.
- */
- export interface VerifyAppCheckTokenResponse {
- /**
- * The App ID corresponding to the App the App Check token belonged to.
- */
- appId: string;
- /**
- * The decoded Firebase App Check token.
- */
- token: DecodedAppCheckToken;
- /**
- * Indicates weather this token was already consumed.
- * If this is the first time {@link AppCheck.verifyToken} method has seen this token,
- * this field will contain the value `false`. The given token will then be
- * marked as `already_consumed` for all future invocations of this {@link AppCheck.verifyToken}
- * method for this token.
- *
- * When this field is `true`, the caller is attempting to reuse a previously consumed token.
- * You should take precautions against such a caller; for example, you can take actions such as
- * rejecting the request or ask the caller to pass additional layers of security checks.
- */
- alreadyConsumed?: boolean;
- }
|