Останнім часом я занурююся у SIWE, і чесно кажучи, це змінює правила гри для тих, хто створює Dapps, що потребують належної автентифікації користувачів. Дозвольте мені розповісти, що я дізнався.



Отже, ось справа з підключенням гаманця — так, ви можете підключити свій гаманець до Dapp, але це не повністю доводить право власності для бекенду. Ваша адреса — публічна інформація, так? Теоретично будь-хто може претендувати на вашу особу у викликах API. Саме тут і приходить Sign-In with Ethereum. Це фактично використання вашого гаманця для криптографічного доведення того, що ви контролюєте цю адресу, подібно до підписання транзакції.

Коли саме варто впроваджувати SIWE? Якщо у вашому Dapp є облікові записи користувачів або він обробля чутливі дані — однозначно. Додатки лише для запитів, такі як Etherscan? Можливо, їм це не потрібно. Але якщо ви створюєте щось із реальною системою користувачів, SIWE — правильний шлях.

Сам процес досить простий — три основні кроки. Спершу стандартне підключення гаманця через плагіни. Потім ви запитуєте Nonce у вашого бекенду (це запобігає повторним атакам), формуєте повідомлення з цим Nonce та додатковими даними, такими як домен і chain ID, і підписуєте його через ваш гаманець. Нарешті, бекенд перевіряє цю підпис і видає вам JWT-токен для подальших запитів.

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

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

Очевидно, що демонстраційний код — лише для навчальних цілей. Реальне виробництво вимагає належної обробки JWT, обмеження швидкості запитів та інших заходів безпеки. Але основний потік SIWE міцний і стає досить стандартним у екосистемі. Якщо ви серйозно налаштовані створювати Dapps із правильною автентифікацією, це однозначно варто зрозуміти.
ETH-0,74%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
Додати коментар
Додати коментар
Немає коментарів
  • Закріпити