如何检查用户是否已存在于 Supabase 中?

问题描述 投票:0回答:2

当打开启用电子邮件确认时,如何检查具有相同电子邮件地址的用户是否已存在。

当打开启用电子邮件确认时,supabase会返回混淆/虚假的用户对象,根据此评论,这是一个功能。

如何在不关闭电子邮件确认的情况下检查电子邮件是否已存在?

我尝试使用

supabase.auth.api.getUser
传递,但这需要 JWT,而不是
user id

javascript reactjs typescript supabase
2个回答
6
投票

不确定以下是否是正确的方法,但我按如下方式执行(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
为 0。


0
投票

即使电话提供商被禁用,也只需前往提供商处并禁用电话确认即可。然后你会在错误字段中得到它。那个

user_already_exists

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

© www.soinside.com 2019 - 2024. All rights reserved.