nuxt-modules / supabase

Supabase module for Nuxt.
https://supabase.nuxtjs.org
MIT License
733 stars 129 forks source link

Be aware when calling signUp on the server side #395

Open oripka opened 3 months ago

oripka commented 3 months ago

I had code like this on the server side in an event handler. That failed the second request. The issue was, that signUp apparently assumes the role of the user that just signed up and so in the second request I don't have enough permissions. Just something to be aware of and maybe add to the docs.

import { serverSupabaseServiceRole } from '#supabase/server'
const client = serverSupabaseServiceRole<Database>(event)
const { data, error } = await client.auth.signUp({
  email: email,
  password: randomPassword,
})

const { data: vouchers, error } = await client
  .from('vouchers')
  .select('courseid, id')
  .eq('voucher', voucher)

The fix is to call signout after signUp to revert back to the service role.

// so we need to sign out
await client.auth.signOut()