-   Notifications  You must be signed in to change notification settings 
- Fork 502
Description
Problem Description
I'm receiving a warning when using supabase.auth.getClaims() in a server-side Next.js application, even though I'm not using the methods mentioned in the warning.
Warning Message:
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server. My Implementation:
// Server-side Next.js action const authResult = await ResultAsync.fromPromise( supabase.auth.getClaims(), (e) => createAppError(e, currentContext, 'supabase.auth.getClaims') ) const { data, error } = authResult.value if (error) { return err(createAppError(error, currentContext, 'supabase.auth.getClaims')) } const authUser = transformJwtClaimsToAuthUser(data?.claims ?? null)Context
- I'm using getClaims()for server-side authentication in a Next.js 15.3.1 application
- My Supabase project is configured with asymmetric JWT validation
- I'm following the documented best practice of using getClaims()for performance benefits
- I am NOT using getSession()oronAuthStateChange()methods anywhere in my code
Questions
-  Is this warning a false positive? The warning mentions getSession()andonAuthStateChange(), but I'm only usinggetClaims(). DoesgetClaims()internally use these methods?
-  Should I ignore this warning? Given that getClaims()is documented as the recommended approach for server-side authentication with asymmetric JWTs, should I safely ignore this warning?
-  Is there a way to suppress this warning? For legitimate server-side usage of getClaims(), is there a way to suppress this warning?
Expected Behavior
I expect that using getClaims() in a server-side context with asymmetric JWT validation should not trigger warnings about insecure user objects, since:
- getClaims()performs server-side JWT signature verification
- It uses the public key for validation without network calls
- It's documented as the recommended approach for server-side authentication
Environment
- Framework: Next.js 15.3.1
- Supabase Auth: Latest version
- Context: Server-side authentication (Server Actions)
- JWT Configuration: Asymmetric JWT validation enabled
- Usage Pattern: Server-side only, no client-side auth code
Additional Context
I'm following the pattern described in the Supabase documentation for server-side authentication, specifically using getClaims() for its performance benefits with asymmetric JWT validation. The warning is causing confusion about whether this is the correct approach.