Closed8

Firebase Auth で Email Link ログインの本文カスタマイズ調査レポート

nitakingnitaking

やりたいこと

firebaseのemail link loginのメール本文をカスタマイズしたい

nitakingnitaking

別のAPIを使用する等の知恵と工夫で、login linkを生成することはできないか・・・?

nitakingnitaking

firebase-adminでlogin linkを生成できるAPIが存在したので、それを利用する
https://twitter.com/_mogaming/status/1514776707836035073?s=20&t=wtWUv7_gqoZhgPlI9DFHFg

// Admin SDK API to generate the sign in with email link.
const usremail = 'user@example.com';
getAuth()
  .generateSignInWithEmailLink(usremail, actionCodeSettings)
  .then((link) => {
    // Construct sign-in with email link template, embed the link and
    // send using custom SMTP server.
    return sendSignInEmail(usremail, displayName, link);
  })
  .catch((error) => {
    // Some error occurred.
  });
nitakingnitaking

実装できたので、後で zenn記事に起こす。

実装の工夫で、emulatorでも開発体験を変えることなく email-loginが実装できた。ここについては記事で。

ゆうたゆうた

実装できたので、後で zenn記事に起こす。

こちらの件、実装された記事へのリンクを教えて頂けますか?

nitakingnitaking

返信遅くなってしまい申し訳ないです・・・!
window.originを使用時にパラメータで渡すことで運用していました!

下記はCloud Functionsで実行する際のサンプルコードです!

export const signInEmailLinkFunc = async ({ email, origin }: Params) => {
  const loginAfterURL = new URL('login-complete', origin).href;
  const actionCodeSettings = { url: loginAfterURL, handleCodeInApp: true };

  const link = await admin.auth().generateSignInWithEmailLink(email, actionCodeSettings);
    ...
};
このスクラップは2022/04/16にクローズされました