Авторизация работает. Пользователи входят. Следующий шаг — защитить данные так, чтобы каждый видел только своё.
Для этого в Supabase есть RLS (Row Level Security) — защита на уровне базы данных.
Сейчас база данных работает так:
Вася просит: "покажи все задачи" База отвечает: ВСЕ задачи всех пользователей Петя просит: "покажи все задачи" База отвечает: ВСЕ задачи всех пользователей
Без дополнительной защиты данные доступны всем пользователям приложения.
RLS = Row Level Security = Защита на уровне строк.
Это правила прямо в базе данных:
Работает автоматически для любого запроса.
После включения RLS:
Вася просит: "покажи все задачи" База АВТОМАТИЧЕСКИ добавляет: "где владелец = Вася" База отвечает: только задачи Васи Петя просит: "покажи все задачи" База АВТОМАТИЧЕСКИ добавляет: "где владелец = Петя" База отвечает: только задачи Пети
Даже если хакер напрямую обратится к базе — получит только то, что ему разрешено.
Без RLS:
С RLS:
RLS защищает НА УРОВНЕ БАЗЫ. Даже если в твоём коде будет дыра — база не отдаст чужие данные. Это последний рубеж обороны.
user_id — кто владелец записиЗапись: {title: "Купить молоко", user_id: "вася123"}
Вася (id: вася123) запрашивает → видит запись ✓
Петя (id: петя456) запрашивает → НЕ видит запись ✗
В следующем уроке:
user_id в таблицуПосле этого твои данные будут защищены на уровне базы.
Что должно быть:
Готов? → Идём настраивать.
RLS — одна из тех вещей, которые настраиваешь один раз и забываешь. 10 минут работы — и данные защищены на уровне базы.