Help us understand the problem. What is going on with this article?

Firebase FunctionsにAuthenticationの認証をつける

More than 1 year has passed since last update.

リクエストを受けた時にfunctions側でFirebase Authenticationでログインしているかをチェックしたい。
ちょっとした内製のツールを作る時にG Suiteのアカウントで認証したい。

 Authenticationと連携する機能はないのでクライアント側で対応する

公式のサンプル
https://github.com/firebase/functions-samples/tree/Node-8/authorized-https-endpoint

クライアント側でAuthenticationにログインをしてtokenを作成して、
FunctionsのAPIにリクエストする際にHeaderとしてtokenを渡しています。
そのtokenをFunctions側で認証をチェックしていました。

クライアント側

javavscript
import axios from "axios"

firebase.auth().currentUser.getIdToken().then(function(token){
  axios.get("/api/xxxx", {
    headers: { 'Authorization': `Bearer ${token}`  }
  })
})

Functions側

javascript
const token = req.headers.authorization.split('Bearer ')[1];

try {
  const decodedToken = await admin.auth().verifyIdToken(token);
  console.log("success");
} catch (error) {
  console.error("error");
}

GAEみたいに簡単に強制的にログイン処理を挟めると思ったんですが難しいようですね。
IAM周りを使えば、できるのかもしれませんが。

kuninori
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした