| Краткое описание | Включение входа с помощью Ethereum на платформе Discourse | |
| Репозиторий | GitHub - signinwithethereum/discourse-siwe-auth: Discourse plugin for SIWE authentication · GitHub | |
| Руководство по установке | Как установить плагины в Discourse |
Плагин для Discourse, позволяющий пользователям аутентифицироваться с помощью своего Ethereum-кошелька, используя стандарт Sign-In with Ethereum (SIWE). Встроенные кошельки (MetaMask, Safe и др.) работают сразу после установки. Имена ENS и аватары разрешаются на стороне сервера при настройке RPC-конечной точки.
Требования
- Форум Discourse, размещённый самостоятельно или у провайдера, поддерживающего сторонние плагины, например Communiteq.
Установка
Откройте файл app.yml вашего контейнера:
cd /var/discourse
nano containers/app.yml
Добавьте URL-адрес репозитория плагина в хук after_code:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git
- sudo -E -u discourse git clone https://github.com/signinwithethereum/discourse-siwe-auth.git # <-- добавлено
Следуйте существующему формату строки docker_manager.git; если в ней нет sudo -E -u discourse, используйте вместо этого git clone https://github.com/signinwithethereum/discourse-siwe-auth.git.
Пересоберите контейнер:
cd /var/discourse
./launcher rebuild app
Настройка
После установки найдите плагин в разделе Администрирование > Плагины и убедитесь, что он включён:
Нажмите Настройки, чтобы настроить плагин:
Здесь вы можете настроить текст сообщения для входа и при желании добавить идентификатор проекта WalletConnect / Reown. Без идентификатора проекта доступны только встроенные кошельки (MetaMask, Safe и др.).
Настройки
| Настройка | Описание |
|---|---|
| Discourse siwe enabled | Включение или отключение аутентификации через Sign-In with Ethereum. |
| Siwe ethereum rpc url | Опционально. Конечная точка Ethereum JSON-RPC, используемая для разрешения имён ENS/аватаров и проверки подписей EIP-1271 (требуется для кошельков смарт-контрактов, таких как SAFE). Рекомендуется использовать выделенного провайдера (Alchemy, Infura). Пример: https://mainnet.infura.io/v3/YOUR_KEY. |
| Siwe project ID | Опционально. Идентификатор проекта WalletConnect / Reown. Без него доступны только встроенные кошельки (MetaMask, Safe и др.). Чтобы включить WalletConnect, создайте бесплатный идентификатор проекта на dashboard.reown.com. |
| Siwe statement | Текст сообщения для входа, отображаемый в сообщении SIWE. По умолчанию — “Sign in with Ethereum”. |
Как это работает
Когда пользователь нажимает кнопку входа через Ethereum, плагин открывает отдельный процесс аутентификации. Пользователь подключает свой кошелёк, подписывает сообщение SIWE и аутентифицируется с помощью стратегии OmniAuth на стороне сервера.
После первого входа пользователю предлагается связать адрес электронной почты со своим аккаунтом. Если настроена RPC-конечная точка и у подключённого адреса есть имя ENS, это имя разрешается и проверяется на стороне сервера, а затем предлагается в качестве имени пользователя по умолчанию. Аватары ENS загружаются через службу метаданных ENS и используются в качестве фотографии профиля.
Кроме того, существующие пользователи могут подключить свои Ethereum-аккаунты через настройки профиля.

