如何将supabase auth与nextjs和子域一起使用?

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

我的登陆页面位于

example.com
。我想让我的用户登录该域并重定向到子域
app.example.com

我有一个连接到服务器操作的登录表单,如下所示:

export const signInWithPassword = async (formData: FormData) => {
    const email = formData.get("email") as string;
    const password = formData.get("password") as string;
    const supabase = createClient();

    const { data, error } = await supabase.auth.signInWithPassword({
        email,
        password,
    });

    if (error) {
        return redirect("/auth/signin?auth=failed");
    }

    cookies().set("sb-session", JSON.stringify(data.session), {
        httpOnly: true,
        secure: process.env.NODE_ENV === "production",
        sameSite: "lax",
        path: "/",
        domain: ".example",
    });


    return redirect("https://app.example.com");
};

Cookie 在重定向到子域后无法继续存在。我能找到的关于此事的唯一文档是 gh 问题,它引用了已弃用的 sdk: https://github.com/orgs/supabase/discussions/5742

我尝试在服务器操作中设置 cookie,然后重新验证并刷新

app.example.com
子域上的会话,但身份验证数据被删除。

我唯一能想到的就是通过查询参数传递令牌,但这似乎并不安全。

我正在使用 Nextjs 应用程序路由器

authentication next.js supabase
1个回答
0
投票

我在带有子域的多租户应用程序中的 sveltekit 中处理同样的问题,你找到任何解决方案了吗?

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