我的登陆页面位于
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 应用程序路由器
我在带有子域的多租户应用程序中的 sveltekit 中处理同样的问题,你找到任何解决方案了吗?