From 462b2fe10cf45da3dbcb5ee20ca6dfb79f46e6b6 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Thu, 4 Nov 2021 13:34:02 +0200 Subject: Initial commit --- server/google.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 server/google.ts (limited to 'server/google.ts') diff --git a/server/google.ts b/server/google.ts new file mode 100644 index 0000000..3fe6362 --- /dev/null +++ b/server/google.ts @@ -0,0 +1,24 @@ +import got from "got/dist/source"; + +export const fetchIdToken = async function (aud: string): Promise { + const metadataServerTokenURL = `http://metadata/computeMetadata/v1/instance/service-accounts/default/identity?audience=${aud}`; + + let resp; + try { + resp = await got(metadataServerTokenURL, { + headers: { + "Metadata-Flavor": "Google" + } + }); + } catch (err) { + console.error(err); + throw new Error("Failed to fetch ID token from Google metadata endpoint"); + } + + const token = resp.body; + if (!token) { + throw new Error("ID token from Google metadata endpoint is empty"); + } + + return token; +}; -- cgit v1.3