Последнее время я увлёкся SIWE, и честно говоря, это меняет правила игры для тех, кто создает Dapps, требующие правильной аутентификации пользователей. Позвольте мне объяснить, что я узнал.



Итак, что касается подключений кошелька — да, вы можете подключить свой кошелек к Dapp, но это не полностью доказывает владение для бэкенда. Ваш адрес — публичная информация, верно? Теоретически любой может претендовать на вашу личность в API-запросах. Вот тут и приходит Sign-In with Ethereum. Это по сути использование вашего кошелька для криптографического доказательства того, что вы контролируете этот адрес, аналогично тому, как вы подписываете транзакцию.

Когда действительно стоит внедрять SIWE? Если у вашего Dapp есть учетные записи пользователей или он обрабатывает чувствительные данные — определенно. Приложения только для запросов, такие как Etherscan? Наверное, не нужно. Но если вы создаете что-то с реальной системой пользователей, SIWE — правильный выбор.

Сам процесс довольно прост — три основных шага. Сначала стандартное подключение кошелька через плагины. Затем вы запрашиваете Nonce у вашего бэкенда (это предотвращает повторные атаки), формируете сообщение с этим Nonce и дополнительными данными, такими как домен и ID цепочки, и подписываете его через ваш кошелек. В конце бэкенд проверяет подпись и возвращает вам JWT-токен для последующих запросов.

Я экспериментировал с реализацией на Next.js и Ant Design Web3. Настройка оказалась проще, чем я ожидал. Вы устанавливаете зависимости, подключаете провайдера Wagmi с вашей конфигурацией SIWE, и вуаля — подключение кошелька и подпись встроены. Основные части — это эндпоинт Nonce (генерирует и сохраняет случайное значение, связанное с адресом пользователя) и эндпоинт проверки (проверяет подпись, сверяет Nonce, затем выдает JWT).

Одна вещь, которая меня удивила — стандартная настройка RPC была очень медленной, проверка подписей занимала около 30 секунд. Переключение на выделенный узел значительно ускорило процесс. Это важная оптимизация, если вы планируете запускать в продакшн.

Очевидно, что демонстрационный код предназначен только для обучения. В реальной продукции нужны правильная обработка JWT, ограничение скорости запросов и другие меры безопасности. Но основной поток SIWE надежен и становится довольно стандартным в экосистеме. Если вы серьезно настроены на создание Dapps с правильной аутентификацией, это определенно стоит понять.
ETH-1,02%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • комментарий
  • Репост
  • Поделиться
комментарий
Добавить комментарий
Добавить комментарий
Нет комментариев
  • Закрепить