如何使用Sveltekit & Supabase实现cookie认证?

问题描述 投票:0回答:3

我对 SvelteKit 和 Supabase 都很陌生,并且自己做了一些实验,但我想知道使用这两种技术实现用户身份验证的最佳方法是什么。

我目前在 __layout.svelte 文件中有以下内容,以便我的 Web 应用程序上的每个页面都可以访问会话,但我不确定如何使用 cookie 实现持久用户身份验证。

如果有人可以指导我和未来的用户,那就太棒了!

<script>
  import supabase from "$lib/api";
  import { page, session } from '$app/stores';
  import { browser } from '$app/env';

    if(browser){
      $session = supabase.auth.session();
      supabase.auth.onAuthStateChange((event, sesh) => {
        $session = sesh;
      });
    }
</script>
javascript authentication cookies sveltekit supabase
3个回答
1
投票

绝对不清楚如何做到这一点。我试图让它变得简单并将其放入用户可读的存储中:

export const user = readable<any>(null, (set) => {

    set(supabase.auth.user());
    const unsubscribe = supabase.auth.onAuthStateChange((_, session) => {
        session ? set(session.user) : set(null);
    });
    return () => {
        unsubscribe.data.unsubscribe();
    }
});

现在您可以在任何地方使用

$user
来获取会话,或者查看是否有会话。

J


0
投票

supabase 项目发布了示例存储库快速入门指南,这有助于抽象一些样板文件。有相当多的修改需要添加,所以我不会在此处重新粘贴所有信息,因为如果不查看完整的解决方案,它就没有意义。这一切都基于帮助程序库https://supabase.com/docs/guides/auth/auth-helpers/sveltekit


0
投票

虽然 Supabase 文档没有错,但有足够多的错误让人们偏离正轨。在设法让一切正常工作后,我决定建立一个仓库。希望有帮助!

Supabase Auth / SvelteKit 4 Starter(打字稿)

© www.soinside.com 2019 - 2024. All rights reserved.