polidog lab

Top About Rss
2021年06月22日

Firebase Authenticationで登録しているメールアドレスに対してカスタムトークンを作成する

Firebase Authenticationでサポートされていないログイン プロバイダを使いたい場合に使うカスタムトークン。
基本的な使い方は「カスタム トークンを作成する」で確認できます。

サンプルを見るとこんな感じになっています。

import * as admin from 'firebase-admin'

const uid = 'some-uid';

const customToken = admin
  .auth()
  .createCustomToken(uid)
  .then((customToken) => {
    // Send token back to client
  })
  .catch((error) => {
    console.log('Error creating custom token:', error);
  });

すでに登録しているメールアドレスを使ってログインしたい場合にどすうるのか?
実際に存在するユーザーのUIDを取得する必要があります。

import * as admin from 'firebase-admin'

admin.auth().getUserByEmail('email addresss')

ただし、指定したユーザーのメールアドレスが取得出来ない場合はErrorがthrowされるので気をつけてください。
最終的にこんな感じで実装していあげるといいかと思います。

import * as admin from 'firebase-admin'

const email = 'some-email';

try {  
  const user =  admin.auth().getUserByEmail(email)
  const uid = user.uid
} catch (e) {
  const uid = 'some-uid';
}

const customToken = admin
  .auth()
  .createCustomToken(uid)
  .then((customToken) => {
    // Send token back to client
  })
  .catch((error) => {
    console.log('Error creating custom token:', error);
  });
comments powered by Disqus