Buckets:
| ; | |
| // Copyright 2020 Google LLC | |
| // | |
| // 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. | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| exports.IdTokenClient = void 0; | |
| const oauth2client_1 = require("./oauth2client"); | |
| class IdTokenClient extends oauth2client_1.OAuth2Client { | |
| targetAudience; | |
| idTokenProvider; | |
| /** | |
| * Google ID Token client | |
| * | |
| * Retrieve ID token from the metadata server. | |
| * See: https://cloud.google.com/docs/authentication/get-id-token#metadata-server | |
| */ | |
| constructor(options) { | |
| super(options); | |
| this.targetAudience = options.targetAudience; | |
| this.idTokenProvider = options.idTokenProvider; | |
| } | |
| async getRequestMetadataAsync() { | |
| if (!this.credentials.id_token || | |
| !this.credentials.expiry_date || | |
| this.isTokenExpiring()) { | |
| const idToken = await this.idTokenProvider.fetchIdToken(this.targetAudience); | |
| this.credentials = { | |
| id_token: idToken, | |
| expiry_date: this.getIdTokenExpiryDate(idToken), | |
| }; | |
| } | |
| const headers = new Headers({ | |
| authorization: 'Bearer ' + this.credentials.id_token, | |
| }); | |
| return { headers }; | |
| } | |
| getIdTokenExpiryDate(idToken) { | |
| const payloadB64 = idToken.split('.')[1]; | |
| if (payloadB64) { | |
| const payload = JSON.parse(Buffer.from(payloadB64, 'base64').toString('ascii')); | |
| return payload.exp * 1000; | |
| } | |
| } | |
| } | |
| exports.IdTokenClient = IdTokenClient; | |
| //# sourceMappingURL=idtokenclient.js.map |
Xet Storage Details
- Size:
- 2.11 kB
- Xet hash:
- 844c5c1e0cd7fe1766a5fe9040ce8d284b74533e193c4c8c7f552c81863a15ed
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.