我正在尝试使用 GitHub OAuth 在 Supabase 中设置身份验证。
问题是点击登录按钮后,没有任何反应!
当我尝试访问受限链接时,我被重定向到登录页面,因此网址看起来像这样“http://localhost:3000/login?redirectTo=/aaaaa/bbbb/cccc/ddddd/eeeeeee”
登录.vue 文件:
<template>
<div class="prose w-full max-w-2xl h-9">
<h1>Log in to {{ title }}</h1>
<button
class="bg-blue-600 text-white font-bold py-2 px-4 rounded"
@click="login"
>
Log in with Github
</button>
</div>
</template>
<script setup lang="ts">
const { title } = useCourse();
const { query } = useRoute();
const supabase = useSupabaseClient();
const user = useSupabaseUser();
watchEffect(async () => {
if (user.value) {
await navigateTo(query.redirectTo as string, {
replace: true,
});
}
});
const login = async () => {
const redirectTo = `${window.location.origin}${query.redirectTo}`;
console.log('redirectTo', redirectTo);
const { error } = await supabase.auth.signInWithOAuth({
provider: 'github',
options: { redirectTo: redirectTo },
});
if (error) {
console.log(error);
}
};
</script>
nuxt.config.ts 中的 Supabase 配置
supabase: {
url: process.env.SUPABASE_URL,
key: process.env.SUPABASE_KEY,
redirectOptions: {
login: '/login',
callback: '/confirm',
exclude: ['/*'],
},
},
我只需要创建一个confirm.vue页面就可以了