Firebase Admin SDKでIDトークンを検証する

Firebaseでは、サーバーのFirebase Admin SDKを利用するときに、クライアントで取得したIDトークンをサーバーに渡すことでリクエスト元のユーザーのIDを特定できます。

Share

Firebaseでは、サーバーのFirebase Admin SDKを利用するときに、クライアントで取得したIDトークンをサーバーに渡すことでリクエスト元のユーザーのIDを特定できます。

ユーザーが機能を使うたびにこれをおこなうことで認証をおこなうことができます。

しかし、その実装方法の公式ドキュメントが古かったので、こちらで新しいものを紹介します。

なお、実装方法が変わったこと(モジュラーへの移行)についてはこちらの公式ページをご覧ください。

Node.js SDK Admin SDK v10(モジュラー SDK)にアップグレードする

クライアントでIDトークンを取得

JavaScript

import { getAuth } from "firebase/auth";
 
// Function to get Firebase user's id token
async function getFirebaseIdToken() {
  try {
    const auth = getAuth();
    return new Promise((resolve, reject) => {
      const unsubscribe = auth.onAuthStateChanged((user) => {
        unsubscribe(); // Stop listening for auth state changes
        if (user) {
          user
            .getIdToken(true)
            .then((idToken) => {
              console.log("idToken:", idToken);
              resolve(idToken);
            })
            .catch(reject);
        } else {
          reject(new Error("No user logged in"));
        }
      }, reject); // Handle possible errors
    });
  } catch (error) {
    console.error("Error fetching token:", error);
    throw error; // Rethrow the error if you want to handle it outside
  }
}

公式ドキュメントはこちら(古くなっていてそのままでは動きません(2024年4月22日現在))

サーバーでIDトークンからユーザーのuidを取得

Node.js

const { getAuth } = require('firebase-admin/auth');
const auth = getAuth();
 
// Function to verify idToken and get user id
async function getUserIdFromIdToken(idToken) {
  try {
    const decodedToken = await auth.verifyIdToken(idToken);
    return decodedToken.uid;
  } catch (error) {
    console.error('Error verifying idToken:', error);
    throw error;
  }
}

公式ドキュメントはこちら

これにより、クライアントから送られてきたリクエストがユーザーのものであるかどうかの検証と、ユーザーIDの取得ができるようになりました。

Read more

サービス更新履歴

ここでは、LiveQのサービス・製品への変更を全て紹介しております。 このページは大きな変更があった場合に更新されます。 いつごろにどのような機能がリリースされたかが分かります。 2026年6月: 高速化・安定化 * 5月よりサーバーおよびアプリケーションの大型リニューアルに取り組み、6月に読み込み速度の向上や、大規模アクセス時にも安定して高速に動作するように変更をおこないました。 2026年4月: 画像スライド * 新たなスライドの種類として画像スライドを追加しました。 * PowerPoint, PDFファイルを一括インポートし、画像スライドとして追加する機能を追加しました * そのほか多数の細かな変更(操作性などのデザイン改善や、不具合)をおこないました 2026年3月: ワードクラウド、コメントのAIモデレーション(監視) * 新たなスライドの種類としてワードクラウドを追加しました * コメントをAIで自動監視する機能をリリースしました * そのほか細かな改善や不具合の修正をおこないました 2026年2月: 有料プランのデータエクスポート

By 阿部 隼也

チームメンバーを招待する方法

チームメンバーを追加するには、招待する必要があります。 その招待方法を紹介します。 招待可能なチームメンバーの数は、ご利用のプランによって異なるため、事前にご確認ください。 チームページの「新しいチームメンバーを招待」にて、招待するメンバーのメールアドレスを入力し、「招待を送信」をクリックします。 招待された側で招待を承認 次に、招待された側の方によって招待を承認する必要があります。 ※この承認にはLiveQのアカウントが必要となりますので、必ず事前にご登録ください。 下記のような招待メールが届きます。 件名:【LiveQ】チームへの招待が届いています 差出人:[email protected] 既にLiveQに登録済みの方はそのまま「招待を承認して参加する」ボタンをクリックします。 まだLiveQに登録していない方は、登録後、同様に承認ボタンをクリックします。 チームを切り替える 招待を承認すると、チームページに下記のように「チーム切り替え」ができるようになります。 招待したユーザーにもメールが届きます 招待が承認されると、招待したユーザーに

By 阿部 隼也