UNPKG

google-auth-library

Version:

Google APIs Authentication Client Library for Node.js

107 lines (106 loc) 3.98 kB
/// <reference types="node" /> /** * Copyright 2013 Google Inc. All Rights Reserved. * * 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. */ import { GoogleToken } from 'gtoken'; import * as stream from 'stream'; import { Credentials, JWTInput } from './credentials'; import { GetTokenResponse, OAuth2Client, RequestMetadataResponse } from './oauth2client'; export interface JWTOptions { email?: string; keyFile?: string; key?: string; scopes?: string | string[]; subject?: string; } export declare class JWT extends OAuth2Client { email?: string; keyFile?: string; key?: string; scopes?: string | string[]; scope?: string; subject?: string; gtoken: GoogleToken; /** * JWT service account credentials. * * Retrieve access token using gtoken. * * @param {string=} email service account email address. * @param {string=} keyFile path to private key file. * @param {string=} key value of key * @param {(string|array)=} scopes list of requested scopes or a single scope. * @param {string=} subject impersonated account's email address. * @constructor */ constructor(options: JWTOptions); constructor(email?: string, keyFile?: string, key?: string, scopes?: string | string[], subject?: string); /** * Creates a copy of the credential with the specified scopes. * @param {(string|array)=} scopes List of requested scopes or a single scope. * @return {object} The cloned instance. */ createScoped(scopes?: string | string[]): JWT; /** * Obtains the metadata to be sent with the request. * * @param {string} optUri the URI being authorized. */ protected getRequestMetadataAsync(url?: string | null): Promise<RequestMetadataResponse>; /** * Indicates whether the credential requires scopes to be created by calling * createdScoped before use. * @return {boolean} false if createScoped does not need to be called. */ createScopedRequired(): boolean; /** * Get the initial access token using gToken. * @param {function=} callback Optional callback. * @returns Promise that resolves with credentials */ authorize(): Promise<Credentials>; authorize(callback: (err: Error | null, result?: Credentials) => void): void; private authorizeAsync(); /** * Refreshes the access token. * @param {object=} ignored * @private */ refreshToken(refreshToken?: string | null): Promise<GetTokenResponse>; /** * Create a JWT credentials instance using the given input options. * @param {object=} json The input object. */ fromJSON(json: JWTInput): void; /** * Create a JWT credentials instance using the given input stream. * @param {object=} inputStream The input stream. * @param {function=} callback Optional callback. */ fromStream(inputStream: stream.Readable): Promise<void>; fromStream(inputStream: stream.Readable, callback: (err?: Error | null) => void): void; private fromStreamAsync(inputStream); /** * Creates a JWT credentials instance using an API Key for authentication. * @param {string} apiKey - the API Key in string form. */ fromAPIKey(apiKey: string): void; /** * Creates the gToken instance if it has not been created already. * @param {function=} callback Callback. * @private */ private createGToken(); }