supabase
supabase copied to clipboard
Static Hosting: Client side only rendering gives error when signing in with email - pw
Version
@nuxtjs/supabase: 0.3.0 nuxt: 3.0.0
Reproduction Link
login.vue
<template>
<div>
<div>
<form>
<div>
<div>
<label for="email-address" class="sr-only">Email address</label>
<input id="email-address" name="email" type="email" autocomplete="email" required="" v-model="formData.email" placeholder="Email address" />
</div>
<div>
<label for="password" class="sr-only">Password</label>
<input id="password" name="password" type="password" autocomplete="current-password" required="" v-model="formData.password" cplaceholder="Password" />
</div>
</div>
<div>
<button type="button" @click="login" >
Sign in
</button>
</div>
</form>
</div>
</div>
</template>
<script setup>
definePageMeta({
layout: 'none'
});
const client = useSupabaseAuthClient();
const user = useSupabaseUser();
const formData = reactive({ email: null, password: null });
watchEffect(async () => {
if (user.value) {
navigateTo("/");
}
});
const login = async () => {
try {
const { error } = await client.auth.signInWithPassword(formData);
if (error) throw error;
} catch(error) {
console.error(error)
}
}
</script>
Steps to reproduce
- npm run generate to create Static Site (ssr: false)
- Run a webserver (vscode live server / upload to S3)
- sign in using email and pw (existing users ofcourse)
What is Expected?
nagivation to /
What is actually happening?
console:
Failed to load resource: the server responded with a status of 405 (Method Not Allowed)
entry.ca775e5e.js:5 Uncaught (in promise) FetchError: 405 Method Not Allowed (/api/_supabase/session)
at async Object.callback (entry.ca775e5e.js:5:117643)
seems like useSupabaseUser().value is not updating. cookies and jwt are correctly stored though
Research
- I have tried commenting out
await setServerSession(event, session)
from https://github.com/nuxt-modules/supabase/blob/c5b4a48c8b155580b77858ad6f3ad0c6af5ac2c0/src/runtime/plugins/supabase.client.ts#L30 - That removed the error messages but the user object did not get updated.