SIWE (Sign-In with Ethereum) - це метод верифікації ідентифікації користувачів на платформі Ethereum. Він схожий на ініціювання транзакції, де підпис підтверджує контроль користувача над гаманцем. Наразі більшість плагінів гаманців підтримують цей простий метод аутентифікації, який вимагає лише підписати інформацію в плагіні.
Ця стаття в основному обговорює сценарії підписів на Ethereum, не зачіпаючи інші публічні блокчейни, такі як Solana, SUI тощо.
Коли потрібно використовувати SIWE
Якщо ваш Dapp має такі вимоги, ви можете розглянути можливість використання SIWE:
Мати незалежну користувацьку систему
Потрібно запитати інформацію, пов'язану з ідентифікацією користувача
Для Dapp(, які зосереджені на запитах, таких як etherscan), SIWE не обов'язковий.
Хоча з'єднання гаманця на Dapp, здається, вже підтвердило ідентифікацію користувача, це діє тільки для фронтенду. Для викликів інтерфейсу, які потребують підтримки бекенду, просто передача адреси недостатня, оскільки адреса є відкритою інформацією, і будь-хто може "позичити".
Принцип та процес SIWE
Процес SIWE можна узагальнити в три етапи: підключення гаманця - підпис - отримання ідентифікації.
підключити гаманець
Це звичайна операція Web3, яка дозволяє підключити гаманець користувача до Dapp через плагін гаманця.
підпис
Етапи підпису SIWE включають отримання значення Nonce, підписування гаманця та перевірку підпису на сервері.
По-перше, потрібно викликати API для отримання значення Nonce. Сервер згенерує випадковий Nonce і зв'яже його з поточною адресою.
Після отримання Nonce на фронтенді, побудуйте вміст підпису, включаючи Nonce, домен, ID ланцюга та іншу інформацію, а потім використовуйте методи, надані гаманцем, для підпису.
Наприкінці підписи надсилаються на сервер для перевірки.
отримати ідентифікацію
Після успішної перевірки підпису на бекенді, буде повернуто ідентифікацію користувача (, наприклад, JWT). Фронтенд у подальших запитах передає адресу та ідентифікацію, що дозволяє довести право власності на гаманець.
Практичний посібник
Наступні є основними кроками для реалізації SIWE з використанням Next.js:
Встановіть Next.js та відповідні залежності
Введення компонентів Wagmi та Ant Design Web3
Налаштування WagmiProvider
Реалізувати кнопку підключення гаманця
Розробка бекенд-інтерфейсу (Nonce генерація та перевірка підпису )
Конкретна реалізація коду може бути знайдена в оригінальному тексті.
Рекомендації щодо оптимізації
Використання спеціалізованих вузлових служб (, таких як ZAN), може суттєво підвищити час відгуку перевірки SIWE. Заміна за замовчуванням RPC на адресу RPC високопродуктивної вузлової служби може значно зменшити час перевірки та підвищити швидкість інтерфейсу.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
15 лайків
Нагородити
15
6
Поділіться
Прокоментувати
0/400
ProposalManiac
· 07-23 08:46
Все ще не вдається уникнути долі централізованої верифікації.
Переглянути оригіналвідповісти на0
LiquidatedTwice
· 07-20 10:02
Дуже добре, нові можливості старого проекту.
Переглянути оригіналвідповісти на0
RugPullAlertBot
· 07-20 10:02
Ще одна концепція криптографії, втекла, втекла.
Переглянути оригіналвідповісти на0
0xLuckbox
· 07-20 09:51
Знову операція, що спалює газ.
Переглянути оригіналвідповісти на0
MEV_Whisperer
· 07-20 09:51
ідентифікація це просто пастка
Переглянути оригіналвідповісти на0
CryptoTherapist
· 07-20 09:43
давайте розглянемо психологічне спротив до веб3 аутентифікації, чесно кажучи... класичні проблеми з довірою
SIWE: Підвищення ідентифікації Dapp легко реалізувати вхід в Ethereum
SIWE: Покращте свою можливість ідентифікації Dapp
SIWE (Sign-In with Ethereum) - це метод верифікації ідентифікації користувачів на платформі Ethereum. Він схожий на ініціювання транзакції, де підпис підтверджує контроль користувача над гаманцем. Наразі більшість плагінів гаманців підтримують цей простий метод аутентифікації, який вимагає лише підписати інформацію в плагіні.
Ця стаття в основному обговорює сценарії підписів на Ethereum, не зачіпаючи інші публічні блокчейни, такі як Solana, SUI тощо.
Коли потрібно використовувати SIWE
Якщо ваш Dapp має такі вимоги, ви можете розглянути можливість використання SIWE:
Для Dapp(, які зосереджені на запитах, таких як etherscan), SIWE не обов'язковий.
Хоча з'єднання гаманця на Dapp, здається, вже підтвердило ідентифікацію користувача, це діє тільки для фронтенду. Для викликів інтерфейсу, які потребують підтримки бекенду, просто передача адреси недостатня, оскільки адреса є відкритою інформацією, і будь-хто може "позичити".
Принцип та процес SIWE
Процес SIWE можна узагальнити в три етапи: підключення гаманця - підпис - отримання ідентифікації.
підключити гаманець
Це звичайна операція Web3, яка дозволяє підключити гаманець користувача до Dapp через плагін гаманця.
підпис
Етапи підпису SIWE включають отримання значення Nonce, підписування гаманця та перевірку підпису на сервері.
По-перше, потрібно викликати API для отримання значення Nonce. Сервер згенерує випадковий Nonce і зв'яже його з поточною адресою.
Після отримання Nonce на фронтенді, побудуйте вміст підпису, включаючи Nonce, домен, ID ланцюга та іншу інформацію, а потім використовуйте методи, надані гаманцем, для підпису.
Наприкінці підписи надсилаються на сервер для перевірки.
отримати ідентифікацію
Після успішної перевірки підпису на бекенді, буде повернуто ідентифікацію користувача (, наприклад, JWT). Фронтенд у подальших запитах передає адресу та ідентифікацію, що дозволяє довести право власності на гаманець.
Практичний посібник
Наступні є основними кроками для реалізації SIWE з використанням Next.js:
Конкретна реалізація коду може бути знайдена в оригінальному тексті.
Рекомендації щодо оптимізації
Використання спеціалізованих вузлових служб (, таких як ZAN), може суттєво підвищити час відгуку перевірки SIWE. Заміна за замовчуванням RPC на адресу RPC високопродуктивної вузлової служби може значно зменшити час перевірки та підвищити швидкість інтерфейсу.