Как подключить SuperToken к базе данных MySQL или к базе данных PostgreSQL

Как подключить SuperToken к базе данных MySQL или к базе данных PostgreSQL

21 мая 2022 г.

В этом блоге вы узнаете, как подключить основную службу SuperTokens к базе данных MySQL или PostgreSQL с помощью Docker и без него.


Это применимо только в том случае, если вы самостоятельно размещаете основную службу SuperTokens.


Существует несколько способов запуска SuperToken вместе с базой данных. В этом блоге мы рассмотрим:


  1. Запуск с MySQL:






  1. Запуск с PostgreSQL:






Пожалуйста, не стесняйтесь переходить к нужному разделу в зависимости от ваших настроек. В каждом разделе мы будем давать ссылки на документацию по SuperTokens везде, где это применимо, чтобы этот блог не был слишком


длинный.


Во всех приведенных ниже разделах предполагается, что вы будете использовать операционную систему на базе Linux. Для Windows синтаксис некоторых шагов может отличаться, но общие шаги, которые необходимо выполнить, будут одинаковыми.


1a) Запуск SuperToken и MySQL без докера


  • Установите SuperTokens на свой локальный компьютер, следуя [самостоятельно размещенным, без докера, инструкциям в документации SuperTokens] (https://supertokens.com/docs/ ThirdPartyemailpassword/quick-setup/core/without-docker).

  • Подключитесь к серверу MySQL на вашем локальном компьютере и создайте базу данных для записи SuperToken:

создавать супертокены базы данных;


Если у вас уже есть база данных для вашего приложения и вы хотите, чтобы SuperToken создавал в ней таблицы, вы можете пропустить этот шаг.


  • Создайте пользователя MySQL с полным доступом к базе данных, созданной на предыдущем шаге. Этот пользователь будет использоваться SuperTokens для создания и записи в таблицы базы данных:

```javascript


СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'supertokens_user'@'localhost', ИДЕНТИФИЦИРОВАННОГО 'somePassword';


```javascript


GRANT ALL ON supertokens.* TO 'supertokens_user'@'localhost';


```javascript


ПОЛНЫЕ ПРИВИЛЕГИИ;


Обратите внимание, что мы разрешаем этому пользователю работать только через 'localhost'. Это будет работать только в том случае, если ядро ​​SuperTokens также работает локально. Если вы используете ядро ​​в другом месте, вам нужно будет заменить 'localhost' выше на '%'.


  • Отредактируйте файл SuperTokens config.yaml (расположенный в /usr/lib/supertokens/config.yaml), чтобы добавить следующую конфигурацию:

mysql_connection_uri: "mysql://supertokens_user:[электронная почта защищена]:3306/supertokens"


Убедитесь, что вы ввели правильные значения для пользователя, пароля, имени базы данных и местоположения вашего экземпляра MySQL в приведенной выше строке uri подключения.


  • Запустите SuperTokens, запустив supertokens start на своем терминале:

запуск супертокенов


Загрузка слоя хранилища.


Загрузка конфигурации MySQL.


Запустил SuperTokens на локальном хосте: 3567 с PID: ...


  • Убедитесь, что он настроен правильно, запросив основную службу:

завиток http://localhost:3567/привет


Если вы получите ответ «Привет», основная настройка завершена!


1b) Запуск SuperToken с Docker и MySQL без Docker


Чтобы эта настройка работала, мы должны подключить SuperTokens и MySQL через сеть хост-компьютера. Для этого нам нужно будет открыть базу данных MySQL для локального IP-адреса.


  • Начните с извлечения образа докера SuperTokens, совместимого с MySQL:

докер вытащить реестр.supertokens.io/supertokens/supertokens-mysql


  • Откройте сервер MySQL для всех сетевых интерфейсов на вашем компьютере. Для этого отредактируйте файл my.cnf (файл конфигурации MySQL), включив в него:

адрес привязки = 0.0.0.0


Обязательно перезапустите сервер MySQL после сохранения файла.


  • Подключитесь к серверу MySQL на вашем локальном компьютере и создайте базу данных для записи SuperToken:

создавать супертокены базы данных;


Если у вас уже есть база данных для вашего приложения и вы хотите, чтобы SuperToken создавал в ней таблицы, вы можете пропустить этот шаг.


  • Создайте пользователя MySQL с полным доступом к базе данных, созданной на предыдущем шаге. Этот пользователь будет использоваться SuperTokens для создания и записи в таблицы базы данных:

REATE USER 'supertokens_user'@'%' ИДЕНТИФИЦИРОВАН BY 'somePassword';


ПРЕДОСТАВИТЬ ВСЕ НА супертокены.* КОМУ 'supertokens_user'@'%';


ПОЛНЫЕ ПРИВИЛЕГИИ;


  • Запустите образ докера SuperTokens с env var, указав URI подключения MySQL:

докер запустить \


-p 3567:3567 \


--сеть=хост \


-e MYSQL_CONNECTION_URI="mysql://supertokens_user:[электронная почта защищена]:3306/supertokens" \


-d реестр.супертокены.io/супертокены/супертокены-mysql


Обязательно замените «192.168.1.1» правильным IP-адресом вашей системы.


Это запустит образ докера в фоновом режиме. Вы можете найти его, запустив:


докер пс


Если вы хотите запустить его на переднем плане, вы можете удалить опцию -d из команды docker run.


  • Убедитесь, что он настроен правильно, запросив основную службу:

завиток http://localhost:3567/привет


Если вы получите ответ «Привет», основная настройка завершена!


1c) Запуск SuperTokens без Docker и MySQL с Docker


  • Установите SuperTokens на свой локальный компьютер, следуя [самостоятельно размещенным, без докера, инструкциям в документации SuperTokens] (https://supertokens.com/docs/ ThirdPartyemailpassword/quick-setup/core/without-docker).

  • Запустите док-контейнер MySQL:

докер запустить \


-e MYSQL_ROOT_PASSWORD=корень \


-e MYSQL_USER=супертокены_пользователь \


-e MYSQL_PASSWORD=некоторый пароль \


-e MYSQL_DATABASE=супертокены \


--сеть=хост \


-p 3306:3306 \


-d mysql


Вышеприведенное запустит базу данных mysql с новой базой данных под названием «supertokens». Ядро SuperTokens будет хранить данные в этой базе данных. Если вы хотите, чтобы данные хранились в существующей базе данных, вместо этого укажите имя этой базы данных.


  • Отредактируйте файл SuperTokens config.yaml (расположенный в /usr/lib/supertokens/config.yaml), чтобы добавить следующую конфигурацию:

mysql_connection_uri: "mysql://supertokens_user:[электронная почта защищена]:3306/supertokens"


Убедитесь, что вы ввели правильные значения для пользователя, пароля, имени базы данных и местоположения вашего экземпляра MySQL в приведенной выше строке uri подключения.


  • Запустите SuperTokens, запустив supertokens start на своем терминале:

запуск супертокенов


Загрузка слоя хранилища.


Загрузка конфигурации MySQL.


Запустил SuperTokens на локальном хосте: 3567 с PID: ...


  • Убедитесь, что он настроен правильно, запросив основную службу:

завиток http://localhost:3567/привет


Если вы получите ответ «Привет», основная настройка завершена!


1d) Запуск SuperToken и MySQL с докером, но без docker-compose


  • Начните с извлечения образа докера SuperTokens, совместимого с MySQL:

докер вытащить реестр.supertokens.io/supertokens/supertokens-mysql


  • Запустите док-контейнер MySQL:

докер запустить \


-e MYSQL_ROOT_PASSWORD=корень \


-e MYSQL_USER=супертокены_пользователь \


-e MYSQL_PASSWORD=некоторый пароль \


-e MYSQL_DATABASE=супертокены \


--сеть=хост \


-p 3306:3306 \


-d mysql


Вышеприведенное запустит базу данных mysql с новой базой данных под названием «supertokens». Ядро SuperTokens будет хранить данные в этой базе данных. Если вы хотите, чтобы данные хранились в существующей базе данных, вместо этого укажите имя этой базы данных.


  • Запустите образ докера SuperTokens с env var, указав URI подключения MySQL:

докер запустить \


-p 3567:3567 \


--сеть=хост \


-e MYSQL_CONNECTION_URI="mysql://supertokens_user:[электронная почта защищена]:3306/supertokens" \


-d реестр.супертокены.io/супертокены/супертокены-mysql


Обязательно замените «192.168.1.1» правильным IP-адресом вашей системы.


Это запустит образ докера в фоновом режиме. Вы можете найти его, запустив:


докер пс


Если вы хотите запустить его на переднем плане, вы можете удалить опцию -d из команды docker run.


  • Убедитесь, что он настроен правильно, запросив основную службу:

завиток http://localhost:3567/привет


Если вы получите ответ «Привет», основная настройка завершена!


1e) Запуск SuperToken и MySQL с помощью docker, с помощью docker-compose


  • Используйте следующий файл компоновки докеров. Вы можете назвать его docker-compose.yaml

версия: '3'


Сервисы:


дБ:


изображение: mysql: последний


Окружающая среда:


MYSQL_ROOT_PASSWORD: корень


MYSQL_USER: supertokens_user


MYSQL_PASSWORD: какой-то пароль


MYSQL_DATABASE: супертокены


порты:


  • 3306:3306

сети:


  • сеть_приложений

перезапуск: если не остановлен


проверка состояния здоровья:


тест: ["CMD", "mysqladmin", "ping", "-h", "localhost"]


тайм-аут: 20 сек.


повторы: 10


супертокены:


образ:Registry.supertokens.io/supertokens/supertokens-mysql


зависит от:


  • дб

порты:


  • 3567:3567

Окружающая среда:


MYSQL_CONNECTION_URI: mysql://supertokens_user:[электронная почта защищена]:3306/supertokens


сети:


  • сеть_приложений

перезапуск: если не остановлен


проверка состояния здоровья:


тест: >


bash -c 'exec 3<>/dev/tcp/127.0.0.1/3567 && echo -e "GET /hello HTTP/1.1\r
хост: 127.0.0.1:3567\r
Соединение: закрыть\ r
\r
" >&3 && кошка <&3 | grep "Привет"'


интервал: 10 с


тайм-аут: 5 с


повторы: 5


сети:


приложение_сеть:


водитель: мост


  • Вы можете запустить следующую команду для запуска службы:

докер-компоновать


  • Убедитесь, что он настроен правильно, запросив основную службу:

завиток http://localhost:3567/привет


Если вы получите ответ «Привет», основная настройка завершена!


2a) Запуск SuperToken и PostgreSQL без докера


  • Установите SuperTokens на свой локальный компьютер, следуя [самостоятельно размещенным, без докера, инструкциям в документации SuperTokens] (https://supertokens.com/docs/ ThirdPartyemailpassword/quick-setup/core/without-docker).

  • Подключитесь к серверу PostgreSQL на вашем локальном компьютере и создайте базу данных для записи SuperToken:

CREATE DATABASE супертокенов;


Если у вас уже есть база данных для вашего приложения и вы хотите, чтобы SuperToken создавал в ней таблицы, вы можете пропустить этот шаг.


  • Создайте пользователя PostgreSQL с полным доступом к базе данных, созданной на предыдущем шаге. Этот пользователь будет использоваться SuperTokens для создания и записи в таблицы базы данных:

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ supertokens_user С ЗАШИФРОВАННЫМ ПАРОЛЕМ 'somePassword';


ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА супертокены БАЗЫ ДАННЫХ supertokens_user;


  • Отредактируйте файл SuperTokens config.yaml (расположенный в /usr/lib/supertokens/config.yaml), чтобы добавить следующую конфигурацию:

postgresql_connection_uri: "postgresql://supertokens_user:[электронная почта защищена]:5432/supertokens"


Убедитесь, что вы ввели правильные значения для пользователя, пароля, имени базы данных и местоположения вашего экземпляра postgreSQL в приведенной выше строке uri подключения.


  • Запустите SuperTokens, запустив supertokens start на своем терминале:

запуск супертокенов


Загрузка слоя хранилища.


Загрузка конфигурации PostgreSQL.


Запустил SuperTokens на локальном хосте: 3567 с PID: ...


  • Убедитесь, что он настроен правильно, запросив основную службу:

завиток http://localhost:3567/привет


  • Если вы получите ответ «Привет», основная настройка завершена!

2b) Запуск SuperToken с Docker и PostgreSQL без Docker


Чтобы эта настройка работала, мы должны подключить SuperTokens и PostgreSQL через сеть хост-компьютера. Для этого нам нужно разрешить PostgreSQL разрешать входящие клиентские подключения по сети.


  • Начните с загрузки образа докера SuperTokens, совместимого с PostgreSQL:

докер вытащить реестр.supertokens.io/supertokens/supertokens-postgresql


  • Разрешите входящие клиентские подключения к базе данных PostgreSQL по сети, добавив следующие строки в файлы postgresql.conf и pg_hba.conf.

postgresql.conf


listen_addresses = '0.0.0.0'


pg_hba.conf


хост все все 0.0.0.0/0 md5


  • Подключитесь к серверу PostgreSQL на вашем локальном компьютере и создайте базу данных для записи SuperToken:

CREATE DATABASE супертокенов;


Если у вас уже есть база данных для вашего приложения и вы хотите, чтобы SuperToken создавал в ней таблицы, вы можете пропустить этот шаг.


  • Создайте пользователя PostgreSQL с полным доступом к базе данных, созданной на предыдущем шаге. Этот пользователь будет использоваться SuperTokens для создания и записи в таблицы базы данных:

CREATE USER supertokens_user с зашифрованным паролем «somePassword»;


ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА супертокены БАЗЫ ДАННЫХ supertokens_user;


  • Запустите образ докера SuperTokens с переменной env, указав URI подключения PostgreSQL:

докер запустить \


-p 3567:3567 \


--сеть=хост \


-e POSTGRESQL_CONNECTION_URI="postgresql://supertokens_user:[электронная почта защищена]:5432/supertokens" \


-d реестр.супертокены.io/супертокены/супертокены-postgresql


Обязательно замените «192.168.1.1» правильным IP-адресом вашей системы.


Это запустит образ докера в фоновом режиме. Вы можете найти его, запустив:


докер пс


Если вы хотите запустить его на переднем плане, вы можете удалить опцию -d из команды docker run.


  • Убедитесь, что он настроен правильно, запросив основную службу:

завиток http://localhost:3567/привет


Если вы получите ответ «Привет», основная настройка завершена!


2c) Запуск SuperTokens без Docker и PostgreSQL с docker


  • Установите SuperTokens на свой локальный компьютер, следуя [самостоятельно размещенным, без докера, инструкциям в документации SuperTokens] (https://supertokens.com/docs/ ThirdPartyemailpassword/quick-setup/core/without-docker).

  • Запустите док-контейнер PostgreSQL:

докер запустить \


-e POSTGRES_USER=корень \


-e POSTGRES_PASSWORD=корень \


--сеть=хост \


-p 5432:5432 \


-d постгрес \


-c listen_addresses=0.0.0.0


Вышеприведенное запустит базу данных PostgreSQL. Вам нужно будет подключиться к базе данных и создать пользователя с привилегиями.


CREATE DATABASE супертокенов;


Если у вас уже есть база данных для вашего приложения и вы хотите, чтобы SuperToken создавал в ней таблицы, вы можете пропустить этот шаг.


  • Создайте пользователя PostgreSQL с полным доступом к базе данных, созданной на предыдущем шаге. Этот пользователь будет использоваться SuperTokens для создания и записи в таблицы базы данных:

CREATE USER supertokens_user с зашифрованным паролем «somePassword»;


ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА супертокены БАЗЫ ДАННЫХ supertokens_user;


  • Отредактируйте файл SuperTokens config.yaml (расположенный в /usr/lib/supertokens/config.yaml), чтобы добавить следующую конфигурацию:

postgresql_connection_uri: "postgresql://supertokens_user:[электронная почта защищена]:5432/supertokens"


Убедитесь, что вы ввели правильные значения для пользователя, пароля, имени базы данных и местоположения вашего экземпляра PostgreSQL в приведенной выше строке uri подключения.


  • Запустите SuperTokens, запустив supertokens start на своем терминале:

запуск супертокенов


Загрузка слоя хранилища.


Загрузка конфигурации PostgreSQL.


Запустил SuperTokens на локальном хосте: 3567 с PID: ...


  • Убедитесь, что он настроен правильно, запросив основную службу:

завиток http://localhost:3567/привет


Если вы получите ответ «Привет», основная настройка завершена!


2d) Запуск SuperToken и PostgreSQL с докером, но без docker-compose


  • Начните с загрузки образа докера SuperTokens, совместимого с PostgreSQL:

докер вытащить реестр.supertokens.io/supertokens/supertokens-postgresql


  • Запустите док-контейнер PostgreSQL:

докер запустить \


-e POSTGRES_USER=корень \


-e POSTGRES_PASSWORD=корень \


--сеть=хост \


-p 5432:5432 \


-d постгрес \


-c listen_addresses=0.0.0.0


Вышеприведенное запустит базу данных PostgreSQL. Вам нужно будет подключиться к базе данных и создать пользователя с привилегиями.


CREATE DATABASE супертокенов;


Если у вас уже есть база данных для вашего приложения и вы хотите, чтобы SuperToken создавал в ней таблицы, вы можете пропустить этот шаг.


  • Создайте пользователя PostgreSQL с полным доступом к базе данных, созданной на предыдущем шаге. Этот пользователь будет использоваться SuperTokens для создания и записи в таблицы базы данных:

CREATE USER supertokens_user с зашифрованным паролем «somePassword»;


ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА супертокены БАЗЫ ДАННЫХ supertokens_user;


  • Запустите образ докера SuperTokens с переменной env, указав URI подключения PostgreSQL:

докер запустить \


-p 3567:3567 \


--сеть=хост \


-e POSTGRESQL_CONNECTION_URI="postgresql://supertokens_user:[электронная почта защищена]:5432/supertokens" \


-d реестр.супертокены.io/супертокены/супертокены-postgresql


Обязательно замените «192.168.1.1» правильным IP-адресом вашей системы.


Это запустит образ докера в фоновом режиме. Вы можете найти его, запустив:


докер пс


Если вы хотите запустить его на переднем плане, вы можете удалить опцию -d из команды docker run.


  • Убедитесь, что он настроен правильно, запросив основную службу:

завиток http://localhost:3567/привет


Если вы получите ответ «Привет», основная настройка завершена!


2e) Запуск SuperToken и PostgreSQL с докером, с docker-compose


  • Используйте следующий файл компоновки докеров. Вы можете назвать его docker-compose.yaml

версия: '3'


Сервисы:


дБ:


изображение: 'postgres: последний'


Окружающая среда:


POSTGRES_USER: supertokens_user


POSTGRES_PASSWORD: какой-то пароль


POSTGRES_DB: супертокены


порты:


  • 5432:5432

сети:


  • сеть_приложений

перезапуск: если не остановлен


проверка состояния здоровья:


тест: ['CMD', 'pg_isready -U supertokens_user']


интервал: 5 с


тайм-аут: 5 с


повторы: 5


супертокены:


изображение:Registry.supertokens.io/supertokens/supertokens-postgresql


зависит от:


  • дб

порты:


  • 3567:3567

Окружающая среда:


POSTGRESQL_CONNECTION_URI: "postgresql://supertokens_user:[электронная почта защищена]:5432/supertokens"


сети:


  • сеть_приложений

перезапуск: если не остановлен


проверка состояния здоровья:


тест: >


bash -c 'exec 3<>/dev/tcp/127.0.0.1/3567 && echo -e "GET /hello HTTP/1.1\r
хост: 127.0.0.1:3567\r
Соединение: закрыть\ r
\r
" >&3 && кошка <&3 | grep "Привет"'


интервал: 10 с


тайм-аут: 5 с


повторы: 5


сети:


приложение_сеть:


водитель: мост


  • Вы можете запустить следующую команду для запуска службы:

докер-компоновать


  • Убедитесь, что он настроен правильно, запросив основную службу:

завиток http://localhost:3567/привет


Если вы получите ответ «Привет», основная настройка завершена!


Написано ребятами из SuperTokens — надеюсь, вам понравилось! Мы всегда доступны на нашем сервере Discord.



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE