glokascom / bibleVis

https://biblevis.com
0 stars 0 forks source link

Database and auth #6

Closed foxprogs closed 2 months ago

foxprogs commented 3 months ago

Task description:

Подключить supabase Добавить аутентификацию через гугл и через почту+пароль

Examples and links:

Supabase Auth Auth Google Supabase local Supabase with prisma

____

Evaluation criteria:

  1. Локальная база запускается.
  2. Всё готово для интеграции аунтентификации через гугл, чтобы сделать созвон с Димой и сделать с ним, как с владельцем аккаунта финальные настройки.
  3. Работает регистрация по почте и паролю.
  4. Работает вход по почте и паролю.

General solution:

Implementation steps:

1. 2.

New components and functions:

Changes in components and functions:

Tests:

Additional information:

Попробовать сначала подключение с помощью Prisma, если не получится - то использовать штатные инструменты Supabase

DenisArger commented 3 months ago

Порядок действий:

А. Создание БД

  1. Создать локальную базу данных. https://supabase.com/docs/guides/cli/local-development#start-supabase-services
    • supabase init
    • supabase start
  2. Создать проект удаленной базы данных (https://supabase.com/dashboard/projects)
  3. Подключить локальную БД к удаленной: supabase link --project-ref <project-id> supabase db pull

Б. Подключение к Prisma https://supabase.com/partners/integrations/prisma

  1. Получить строку подключения к БД
  2. Настроить БД
    • ?pgbouncer=true&connection_limit=1
  3. Склонировать стартовый проект Prisma
  4. Настроить проект: -touch .env DATABASE_URL="" # Set this to the Transaction connection pooler string you copied in Step 1 DIRECT_URL="" # Set this to the Session connection pooler string you copied in Step 1

generator client { provider = "prisma-client-js" }

model Post { id Int @id @default(autoincrement()) title String content String? published Boolean @default(false) author User? @relation(fields: [authorId], references: [id]) authorId Int? }

model User { id Int @id @default(autoincrement()) email String @unique name String? posts Post[] }`

  1. Проверить миграцию:
    • `npx prisma migrate dev --name init

В. Supabase Auth с Prisma

  1. Включить флаг multiSchema `datasource db { provider = "postgresql" url = env("DATABASE_URL") directUrl = env("DIRECT_URL") }

generator client { provider = "prisma-client-js" previewFeatures = ["multiSchema"] } `

foxprogs commented 3 months ago

@DenisArger я думаю что на этом этапе не надо будет создавать удаленную базу данных. И не надо будет подключать призму. Если ты думаешь что все же призма нужна, тогда лучше взять другой issue, который как раз с ней связан.

DenisArger commented 3 months ago

Обновленный порядок действий:

  1. Создать локальную базу данных
    supabase init
    supabase start
  1. Сверстать простую страницу для входа и регистрации
  2. Подключить функционал для входа и регистрации через почте и паролю
  3. Подготовить все для настройки авторизации через гугл
  4. Завершить настройку авторизации через гугл с участием Димы
foxprogs commented 3 months ago

@DenisArger Еще такой момент, после supabase init смени порт, а то будут конфликтовать другие версии. Там что-то типа 5432 везде, замени к примеру на 5542

А так вроде норм шаги

DenisArger commented 3 months ago

@DenisArger Еще такой момент, после supabase init смени порт, а то будут конфликтовать другие версии. Там что-то типа 5432 везде, замени к примеру на 5542

А так вроде норм шаги

ок @foxprogs, спасибо за уточнение. Буду действовать.