برنامه نویسی

آیا باید supabase auth را با پروفایل های کاربر گسترش دهید؟

Supabase Auth در حال حاضر دارای یک جدول کاربران AUTH است.

supabase auth

تصویر ممکن است مبهم باشد.

اگر در حساب Supabase خود به پروژه مراجعه می کنید ، می توانید جدول AUTH خود را از پروژه بررسی کنید.


اگر می خواهید داده های اضافی را به جدول کاربر A اضافه کنید ، احتمالاً تعجب کرده اید

آیا باید جدول خود ، پروفایل های جداگانه (یا کاربران) خود را در Supabase ایجاد کرده و آن را با جدول کاربران Supabase Auth پیوند دهید؟

یا

آیا باید جدول کاربران موجود در Supabase Auth را گسترش دهید؟


الگوی پیشنهادی Supabase این است یک جدول پروفایل جداگانه (یا کاربران) ایجاد کنید در عمومی طرحواره به جای تغییر داخلی auth.users جدول

در auth.users جدول (در auth SCHEMA) در داخل مدیریت می شود و از طریق API تولید شده خودکار در معرض آن قرار نمی گیرد.

نگهدارنده های supabase صریحاً توصیه می کنند

“توصیه نمی شود که طرح را اصلاح کنید auth.users؛ بهترین راه ایجاد جدول کاربران (یا پروفایل) در طرح عمومی و اضافه کردن هرگونه داده های مرتبط با کاربر در آنجا است. “


پیوند پروفایل به auth.users

خودت public.profiles (یا public.users) جدول استفاده کنید همان uuid به عنوان کلید اصلی و مرجع auth.users(id)

-- Create profiles table
create table public.profiles (
  id uuid primary key references auth.users(id) on delete cascade,
  full_name text,
  bio       text,
  avatar_url text
);

-- Enable RLS
alter table public.profiles enable row level security;

-- Policy for INSERT
create policy "Users can insert own profile"
on public.profiles for insert
with check (auth.uid() = id);

-- Policy for UPDATE
create policy "Users can update own profile"
on public.profiles for update
using (auth.uid() = id);

-- Policy for SELECT
create policy "Users can view own profile"
on public.profiles for select
using (auth.uid() = id);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ایجاد پروفایل خودکار در ثبت نام

برای ایجاد خودکار یک ردیف نمایه هنگام ثبت نام کاربر جدید (از طریق ایمیل یا OAUTH) ، از A استفاده کنید Postgres ماشه در auth.users

-- 1. Create the function
create or replace function public.handle_new_user()
returns trigger
language plpgsql security definer set search_path = public
as $$
begin
  insert into public.profiles (id) values (NEW.id);
  return NEW;
end;
$$;

-- 2. Create the trigger on the Supabase Auth table
create trigger on_auth_user_created
after insert on auth.users
for each row execute procedure public.handle_new_user();
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا