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
