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>
4

1 回答 1

0

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

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任何地方来获取会话,或者查看是否有会话。

Ĵ

于 2022-02-13T15:53:32.807 回答