SupabaseS
Supabase5mo ago
kevwpl

supabaseClient.auth.getUser returns null even if authenticated.

Heres my auth code:

+page.svelte
<script lang="ts">
    import type {User} from "@supabase/supabase-js";
    import {onMount} from "svelte";
    import {supabaseClient} from "$lib/supabase";

    let currentUser = $state();

    onMount(() => {
        getUser();
    })

    async function getUser(){

        const { data: user } = await supabaseClient.auth.getUser();
        currentUser = user;
        console.log(user);
    }
</script>



<form method="POST" action="?/login">
    <label>
        Email
        <input name="email" type="email" />
    </label>
    <label>
        Password
        <input name="password" type="password" />
    </label>
    <button>Login</button>
    <button formaction="?/signup">Sign up</button>
</form>


+page.server.ts
import { redirect } from '@sveltejs/kit'

import type { Actions } from './$types'

export const actions: Actions = {
    signup: async ({ request, locals: { supabase } }) => {
        const formData = await request.formData()
        const email = formData.get('email') as string
        const password = formData.get('password') as string

        const { error } = await supabase.auth.signUp({ email, password })
        if (error) {
            console.error(error)
            redirect(303, '/auth/error')
        } else {
            redirect(303, '/app')
        }
    },
    login: async ({ request, locals: { supabase } }) => {
        const formData = await request.formData()
        const email = formData.get('email') as string
        const password = formData.get('password') as string

        const { error } = await supabase.auth.signInWithPassword({ email, password })
        const { data: user } = await supabase.auth.getUser();
        console.log(user);
        if (error) {
            console.error(error)
            redirect(303, '/auth/error')
        } else {
            redirect(303, '/app')
        }
    },
}
Was this page helpful?