Supabase注册时如何判断用户已经注册过了

111 阅读1分钟

最近做开发自己的个人项目,为了省钱,使用的是云数据库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.没有报错,提示用户注册成功,需要去邮箱验证邮件了。

虽然感觉实现了,但是总感觉不完美,大佬们有其他简单办法吗?