Releases: floatingpixels/supabase-nuxt
Releases · floatingpixels/supabase-nuxt
v0.6.0
Release Notes 0.6.0
Summary
This release introduces a breaking change to useSupabaseUser() and expands the module test suite substantially.
It also fixes two runtime issues:
- configured login redirects now respect
redirectOptions.login clientOptionsare now applied to Supabase client creation on both client and server
Breaking Change: useSupabaseUser()
useSupabaseUser() no longer returns raw claims directly.
It now returns a normalized user-shaped object:
type SupabaseAuthUser = {
id: string
email?: string
phone?: string
role?: string
aud?: string
app_metadata: Record<string, unknown>
user_metadata: Record<string, unknown>
claims: Record<string, unknown>
}The signed-out state is now:
{ data: null, error: null }instead of returning undefined user data.
Why
Consumers of the module should get a sane user-centric default without having to understand the difference between getClaims() and getUser().
The implementation now:
- uses
auth.getClaims()first for a fast auth-state path - falls back to
auth.getUser()only when claim data is too sparse to build the normalized user object
This preserves the performance advantages of claims-based auth while giving callers a more stable and beginner-friendly public API.
Required Changes for Consumers
1. Update signed-out checks
Before:
const { data: user } = await useSupabaseUser()
if (user === undefined) {
// signed out
}After:
const { data: user } = await useSupabaseUser()
if (user === null) {
// signed out
}2. Update raw claim access
Before:
const { data: user } = await useSupabaseUser()
console.log(user?.sub)
console.log(user?.email)After:
const { data: user } = await useSupabaseUser()
console.log(user?.claims.sub)
console.log(user?.email)3. Update metadata access
Before:
const { data: user } = await useSupabaseUser()
console.log(user?.first_name)After:
const { data: user } = await useSupabaseUser()
console.log(user?.user_metadata?.first_name)