gpt4 book ai didi

javascript - 如何使用 Supabase 中的 signUp() 方法在注册时添加其他用户信息

转载 作者:行者123 更新时间:2023-12-03 07:58:23 31 4
gpt4 key购买 nike

我正在尝试构建一个包含 Supabase 身份验证的 Vue.js 应用程序。我希望在注册时使用内置的 Supabase signUp() 方法来处理其他用户数据。为此,我向 SignUp 对象添加了一个属性,用于存储其他用户数据以及电子邮件和密码:

let { data, error } = await supabase.auth.signUp({
email: '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="aad9c5c7cfc5c4cfeacfc7cbc3c684c9c5c7" rel="noreferrer noopener nofollow">[email protected]</a>',
password: 'QQlbOIyZuwutISUzceOz',
data: { isVendor: true }
})

但是,当我在创建用户后运行 console.log 时,我没有看到向用户对象添加其他数据属性。

我还尝试将数据分配给用户对象中现有的 user_metadata 属性,如下所示:

let { data, error } = await supabase.auth.signUp({
email: '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8bf8e4e6eee4e5eecbeee6eae2e7a5e8e4e6" rel="noreferrer noopener nofollow">[email protected]</a>',
password: 'QQlbOIyZuwutISUzceOz',
user_metadata: { isVendor: true }
})

但是,这也不起作用。如何配置 signUp() 方法(或者可能是 Supabase 仪表板中的注册用户门户)来存储其他用户数据?

最佳答案

根据文档,在注册时添加额外详细信息的唯一方法是添加如下数据:

const { data, error } = await supabase.auth.signUp(
{
email: '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5d38253c302d31381d38303c3431733e3230" rel="noreferrer noopener nofollow">[email protected]</a>',
password: 'example-password',
options: {
data: {
first_name: 'John',
age: 27,
}
}
}
)

这些数据将作为 json 添加到名为 raw_user_meta_data 的列中。如果您想保留此元数据,您可以编写如下所示的触发器。

* This trigger automatically creates a user entry when a new user signs up via Supabase Auth.
*/
create function public.handle_new_user()
returns trigger as $$
begin
insert into public.mrbs_users (id, email, name)
values (new.id, new.email, new.raw_user_meta_data->>'name');
return new;
end;
$$ language plpgsql security definer;
create trigger on_auth_user_created
after insert on auth.users
for each row execute procedure public.handle_new_user();

关于javascript - 如何使用 Supabase 中的 signUp() 方法在注册时添加其他用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75317145/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com