💻

Supabaseのメール認証(signUp)で既に登録されているメールアドレスか判別する方法

2023/08/08に公開

Supabaseのメール認証(signUp)にて、既に登録されているメールアドレス(重複)を判別する方法になります。

authのsignUpメソッドでサインアップできる

supabase.auth.signUp({
  email: email,
  password: password,
  options: {
    emailRedirectTo: `${window.location.origin}/signup/completed`,
  }
})

supabase.auth.signUpでメール認証の仮登録を行うことができます。
しかし、既にメール認証で登録されているメールアドレスの場合、仮登録のメールが発行されません。

Responseのidentitiesで重複メールアドレスか判別できる

supabase.auth.signUp({
  email: email,
  password: password,
  options: {
    emailRedirectTo: `${window.location.origin}/signup/completed`,
  }
}).then(({ data, error }) => {
  if (error) {
    console.log(error);
    return;
  }
  
  // 登録されているメールアドレスの場合、空の配列が返ってくる。
  const identities = data.user?.identities;
  if (identities?.length === 0) {
    console.log('既に登録済みのユーザーです。');
  }
});


既に登録されているメールアドレスの場合は、identitiesが空の配列で返ってきます。


新規のメールアドレスの場合は、identitiesの配列に値が入っています。

identitiesの配列の中身によって既に登録されているメールアドレス(重複)かどうか判別することができます。

Discussion