Посібник з використання SIWE: зробіть свій Dapp потужнішим
SIWE(Увійти за допомогою Ethereum) є способом перевірки особистості користувача на платформі Ethereum, подібно до того, як гаманець ініціює транзакції, підтверджуючи контроль користувача над гаманцем. Наразі верифікація особистості стала дуже простою, потрібно лише підписати інформацію у плагіні гаманця, більшість поширених плагінів для гаманців вже підтримують цю функцію. У цій статті основну увагу приділено сценаріям підпису на платформі Ethereum.
Чи потрібен SIWE
Якщо ваш Dapp має такі вимоги, ви можете розглянути можливість використання SIWE:
Має власну систему користувачів
Потрібно перевірити інформацію, пов'язану з конфіденційністю користувача
Але якщо ваш Dapp в основному виконує функцію запиту, наприклад, подібну до etherscan, то SIWE не обов'язково потрібен.
Ви, можливо, запитаєте, чи не доводить вже підключення гаманця на Dapp право власності на гаманець? Це справедливо лише для фронтенду. Для викликів інтерфейсу, які потребують підтримки з боку бекенду, просто передати адресу недостатньо, оскільки адреса є відкритою інформацією, і будь-хто може "використати" вашу особистість.
Принципи та процес SIWE
Процес SIWE можна узагальнити в три кроки: підключення гаманця - підписання - отримання ідентифікатора особи.
Підключити гаманец
Це поширена операція Web3, яка здійснюється через плагін гаманця для підключення гаманця в Dapp.
підпис
Кроки підпису включають отримання значення Nonce, підписання гаманцем та перевірку підпису на сервері.
Бекенд генерує випадкове значення Nonce та асоціює його з адресою. Фронтенд отримує значення Nonce, а потім будує вміст підпису, включаючи значення Nonce, домен, ID ланцюга тощо, використовуючи методи, надані гаманцем, для підписання. Нарешті, підпис відправляється на бекенд.
отримати ідентифікатор
Після успішної перевірки підпису на бекенді, повертається ідентифікатор користувача (, як JWT ). Наступні запити з фронтенду повинні містити адресу та ідентифікатор, щоб підтвердити право власності на гаманець.
Практика SIWE
Ми будемо використовувати Next.js для розробки простого демо SIWE, щоб продемонструвати основний процес. Зверніть увагу, що це демо призначене лише для ознайомлення, використання в продуктивному середовищі може містити проблеми з безпекою.
Оптимізація: використання спеціалізованих вузлів для підвищення швидкості реагування.
Завдяки наведеним вище крокам, ми реалізували базову структуру входу за допомогою SIWE. Використання професійних вузлових сервісів може значно підвищити швидкість верифікації, рекомендується використовувати в продуктивному середовищі.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
SIWE практичний досвід: три кроки для створення системи ідентифікації Ethereum
Посібник з використання SIWE: зробіть свій Dapp потужнішим
SIWE(Увійти за допомогою Ethereum) є способом перевірки особистості користувача на платформі Ethereum, подібно до того, як гаманець ініціює транзакції, підтверджуючи контроль користувача над гаманцем. Наразі верифікація особистості стала дуже простою, потрібно лише підписати інформацію у плагіні гаманця, більшість поширених плагінів для гаманців вже підтримують цю функцію. У цій статті основну увагу приділено сценаріям підпису на платформі Ethereum.
Чи потрібен SIWE
Якщо ваш Dapp має такі вимоги, ви можете розглянути можливість використання SIWE:
Але якщо ваш Dapp в основному виконує функцію запиту, наприклад, подібну до etherscan, то SIWE не обов'язково потрібен.
Ви, можливо, запитаєте, чи не доводить вже підключення гаманця на Dapp право власності на гаманець? Це справедливо лише для фронтенду. Для викликів інтерфейсу, які потребують підтримки з боку бекенду, просто передати адресу недостатньо, оскільки адреса є відкритою інформацією, і будь-хто може "використати" вашу особистість.
Принципи та процес SIWE
Процес SIWE можна узагальнити в три кроки: підключення гаманця - підписання - отримання ідентифікатора особи.
Підключити гаманец
Це поширена операція Web3, яка здійснюється через плагін гаманця для підключення гаманця в Dapp.
підпис
Кроки підпису включають отримання значення Nonce, підписання гаманцем та перевірку підпису на сервері.
Бекенд генерує випадкове значення Nonce та асоціює його з адресою. Фронтенд отримує значення Nonce, а потім будує вміст підпису, включаючи значення Nonce, домен, ID ланцюга тощо, використовуючи методи, надані гаманцем, для підписання. Нарешті, підпис відправляється на бекенд.
отримати ідентифікатор
Після успішної перевірки підпису на бекенді, повертається ідентифікатор користувача (, як JWT ). Наступні запити з фронтенду повинні містити адресу та ідентифікатор, щоб підтвердити право власності на гаманець.
Практика SIWE
Ми будемо використовувати Next.js для розробки простого демо SIWE, щоб продемонструвати основний процес. Зверніть увагу, що це демо призначене лише для ознайомлення, використання в продуктивному середовищі може містити проблеми з безпекою.
Підготовчі роботи
npx create-next-app@14
npm install antd @ant-design/web3 @ant-design/web3-wagmi wagmi viem @tanstack/react-query --save
Реалізувати кнопку підключення гаманця
Реалізація бекенд-інтерфейсу
Оптимізація: використання спеціалізованих вузлів для підвищення швидкості реагування.
Завдяки наведеним вище крокам, ми реалізували базову структуру входу за допомогою SIWE. Використання професійних вузлових сервісів може значно підвищити швидкість верифікації, рекомендується використовувати в продуктивному середовищі.