最近做开发自己的个人项目,为了省钱,使用的是云数据库Subabase,官方都说简单,确实刚开始比较简单,但是在注册和邮箱验证的时候,遇到两个问题:1.如何判断用户是否已经注册过 2.如何判断是否已经邮箱验证过。
在注册调用supabase.auth.signUp接口时,发现一个问题,就是不管用户注册过还是没注册过,都不会报错。 那么如何判断用户到底注册过,又或者注册过但是没有经过邮箱验证呢? 经过2天的折腾,看了官方文档,终于按照自己的方法解决了。
主要流程:
1.调用注册接口
const { data, error } = await supabase.auth.signUp({
email,
password,
options: {
emailRedirectTo: `${window.location.origin}/auth/callback?lang=${language}`
}
})
2.如果报错,直接返回注册失败,请稍后重试(这是因为supabase不允许频繁注册,邮箱验证)
3.如果没有报错,需要验证邮箱是否存在(后端调用)
const { data, error } = await adminSupabase.auth.admin.getUserById(userId)
如果报错了,证明该邮箱已存在。
4.没有报错,提示用户注册成功,需要去邮箱验证邮件了。
虽然感觉实现了,但是总感觉不完美,大佬们有其他简单办法吗?