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

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

Twitter ツイート Hatena Bookmark ブックマーク

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
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を取得する必要があります。

1
2
3
import * as admin from 'firebase-admin'

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
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
Built with Hugo
テーマ StackJimmy によって設計されています。