Closed2
Node.js(TypeScript)でCloud Functionsから認証ありのCloud Functionsを呼び出す
Node.js(TypeScript)で実装したCloud Functions(Firebase Functions)のHTTP関数内で他のProjectの認証ありのCloud Functionsの呼び出す必要があって調査したのでメモしておく
手順
基本的にはここの 関数呼び出しに対する関数の認証 に書いてある通り
- 受信側にCloud Functions起動元のRoleを付与する
-
google-auth-library
を使って呼び出す
そうすると Authorization: Bearer
にIDトークンを設定してリクエストしてくれる
※HttpExceptionはNestJS
$yarn add google-auth-library
import { GoogleAuth } from 'google-auth-library';
import { HttpException } from '@nestjs/common';
const findAll = async (): Promise<Hoge[]> => {
const auth = new GoogleAuth();
const client = await auth.getIdTokenClient(URL);
const response = await client.request<Hoge[]>({
url: `${URL}`,
});
return response.data.map((r) => ({
id: r.id,
name: r.name,
}));
};
const create = async (hoge: Hoge): Promise<void> => {
const auth = new GoogleAuth();
const client = await auth.getIdTokenClient(URL);
const response = await client
.request<void>({
url: `${URL}`,
method: 'POST',
data: hoge,
})
.catch((e) => {
throw new Exception(e.response.data.message, e.code);
});
return response.data;
};
このスクラップは2022/07/02にクローズされました