javascript - Hvordan sjekke om en bruker allerede eksisterer i Supabase?


Hvordan kan jeg sjekke om en bruker med samme e-post allerede eksisterer når Aktiver e-postbekreftelser er slått på.

Når Aktiver e-postbekreftelser er slått på, returneres et obfuskert/falskt brukerobjekt av Supabase; ifølge denne kommentaren er det en funksjon.

Hvordan kan jeg sjekke om e-posten allerede finnes uten å slå av e-postbekreftelse?

Jeg prøvde å passere ved å bruke supabase.auth.api.getUser, men det krever JWT, ikke user id.

Svar #1

Ikke sikker på om følgende er den riktige måten, men jeg gjør det som følger (TypeScript):

const [errorMsg, setErrorMsg] = useState<string | null>(null);
const [successMsg, setSuccessMsg] = useState<string | null>(null);

async function signUp(formData: Values) {
  const { data, error } = await supabase.auth.signUp({
    email: formData.email,
    password: formData.password,
  });

  if (error) {
    setErrorMsg(error.message);
  } else if (data.user?.identities?.length === 0) {
    setErrorMsg('User already registered');
  } else {
    setSuccessMsg('Success! Please check your inbox.');
  }
}

data.user?.identities?.length er 0 når brukeren allerede er registrert.

Svar #2

Gå bare til leverandørene og deaktiver telefonbekreftelse selv om telefonleverandøren er deaktivert. Da vil du få det i feilfeltet. Det user_already_exists

https://supabase.com/docs/reference/javascript/auth-signup

Relaterte artikler