这是我使用和工作的代码:
const redirectTo = `${window.location.origin}${query.redirectTo}`;
const { error } = await client.auth.signInWithOAuth({
provider: "google",
options: {
redirectTo: "http://localhost:3000/course/",
},
});
if (error) {
console.error(error);
}
};
但是我想使用顶部声明的redirectTo变量,其形式为:
"http://localhost:3000/course/module/module-name/lesson/lesson-name"
我也尝试使用整个字符串,而不是变量,但仍然不起作用。用户未通过身份验证。
我还没有在 Supabase 仪表板中设置和重定向 URL,因为不确定如何输入它。 URL 是动态的,这取决于您单击的模块和课程,我想重定向回用户单击的内容。
我也尝试过错误的路线,例如:
http://localhost:3000/course/module/module-name
在这种情况下,签名过程有效,但我收到路由错误错误。
有人知道如何解决这个问题吗?
您可以在 Supabase 仪表板上设置的重定向 URL 中使用通配符。
如果您想将用户重定向到
http://localhost:3000/course/module/module-name/lesson/lesson-name
,您可以在仪表板中设置以下内容:
http://localhost:3000/course/module/*/lesson/*
您可以在此处阅读有关通配符重定向 URL 的更多信息。 https://supabase.com/docs/guides/auth/concepts/redirect-urls#redirect-url-examples-with-wildcards