Руководство по использованию SIWE: сделайте ваше Dapp более мощным
SIWE(Вход с помощью Ethereum) является способом проверки идентичности пользователя на Ethereum, аналогично тому, как кошелек инициирует транзакцию, подтверждая контроль пользователя над кошельком. В настоящее время проверка личности стала очень простой, достаточно подписать информацию в плагине кошелька, и большинство распространенных плагинов кошельков уже поддерживают это. В этой статье в основном рассматриваются сценарии подписания на Ethereum.
! [Руководство SIWE: Как сделать ваше децентрализованное приложение более мощным?] ](https://img-cdn.gateio.im/webp-social/moments-9e9c9e786391f84b004cd8450a29acce.webp)
Нужен ли SIWE
Если ваше Dapp имеет следующие требования, вы можете рассмотреть возможность использования SIWE:
Имеет свою собственную пользовательскую систему
Необходимо запросить информацию, связанную с конфиденциальностью пользователей
Но если ваш Dapp в основном предназначен для функций запроса, таких как приложения, подобные etherscan, то SIWE не обязательно.
Вы можете задаться вопросом: разве после подключения кошелька к Dapp не доказана собственность кошелька? Это верно только для фронтенда. Для вызовов интерфейса, требующих поддержки бэкенда, просто передача адреса недостаточна, потому что адрес является открытой информацией, и любой может «одолжить» вашу личность.
! [Руководство SIWE: Как сделать ваше децентрализованное приложение более мощным?] ](https://img-cdn.gateio.im/webp-social/moments-138fc08a9148099755d1fe162292922f.webp)
Принципы и процесс SIWE
Процесс SIWE можно кратко описать тремя шагами: подключение кошелька - подпись - получение идентификатора личности.
Подключить кошелек
Это распространенная операция Web3, подключение кошелька в Dapp через плагин кошелька.
Подпись
Этапы подписи включают получение значения Nonce, подпись кошелька и проверку подписи на сервере.
Бэкэнд генерирует случайное значение Nonce и связывает его с адресом. Фронтэнд получает значение Nonce и строит содержимое подписи, включая значение Nonce, доменное имя, ID цепи и т. д., используя методы, предоставленные кошельком, для подписи. В конце концов, подпись отправляется на бэкэнд.
Получить идентификационный номер
После проверки подписи на стороне сервера возвращается идентификатор пользователя (, как JWT). Последующие запросы на стороне клиента должны содержать адрес и идентификатор, чтобы подтвердить право собственности на кошелек.
Практика SIWE
Мы разработаем простой демонстрационный проект SIWE с использованием Next.js, чтобы продемонстрировать основной процесс. Обратите внимание, что этот демо-версий предназначен только для ознакомления, использование в производственной среде может представлять собой проблемы с безопасностью.
Подготовительные работы
Установите Next.js
NPX создать-следующий-app@14
! [Руководство SIWE: Как сделать ваше децентрализованное приложение более мощным?] ](https://img-cdn.gateio.im/webp-social/moments-53c03d1cb26f29a9d739e3d1aa0816df.webp)
! [Руководство SIWE: Как сделать ваше децентрализованное приложение более мощным?] ](https://img-cdn.gateio.im/webp-social/moments-18a98c883797c414a689c54ae0d65302.webp)
Импортируйте WagmiProvider в layout.tsx
! [Руководство SIWE: Как сделать ваше децентрализованное приложение более мощным?] ](https://img-cdn.gateio.im/webp-social/moments-9351d7f08e48962120d591c3a0c7d245.webp)
Реализовать кнопку подключения кошелька
Реализация интерфейса backend
Генерация Nonce
Проверка подписи
Оптимизация: использование специализированных узловых сервисов для повышения скорости реакции
Следуя вышеуказанным шагам, мы реализовали основную структуру входа SIWE. Использование профессиональных узловых сервисов может значительно повысить скорость проверки, рекомендуется использовать в производственной среде.
! [Руководство SIWE: Как сделать ваше децентрализованное приложение более мощным?] ](https://img-cdn.gateio.im/webp-social/moments-0ce46cff7473e96e768adfb5fc6dafb8.webp)
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
SIWE на практике: три шага к созданию системы идентификации Ethereum
Руководство по использованию SIWE: сделайте ваше Dapp более мощным
SIWE(Вход с помощью Ethereum) является способом проверки идентичности пользователя на Ethereum, аналогично тому, как кошелек инициирует транзакцию, подтверждая контроль пользователя над кошельком. В настоящее время проверка личности стала очень простой, достаточно подписать информацию в плагине кошелька, и большинство распространенных плагинов кошельков уже поддерживают это. В этой статье в основном рассматриваются сценарии подписания на Ethereum.
! [Руководство SIWE: Как сделать ваше децентрализованное приложение более мощным?] ](https://img-cdn.gateio.im/webp-social/moments-9e9c9e786391f84b004cd8450a29acce.webp)
Нужен ли SIWE
Если ваше Dapp имеет следующие требования, вы можете рассмотреть возможность использования SIWE:
Но если ваш Dapp в основном предназначен для функций запроса, таких как приложения, подобные etherscan, то SIWE не обязательно.
Вы можете задаться вопросом: разве после подключения кошелька к Dapp не доказана собственность кошелька? Это верно только для фронтенда. Для вызовов интерфейса, требующих поддержки бэкенда, просто передача адреса недостаточна, потому что адрес является открытой информацией, и любой может «одолжить» вашу личность.
! [Руководство SIWE: Как сделать ваше децентрализованное приложение более мощным?] ](https://img-cdn.gateio.im/webp-social/moments-138fc08a9148099755d1fe162292922f.webp)
Принципы и процесс SIWE
Процесс SIWE можно кратко описать тремя шагами: подключение кошелька - подпись - получение идентификатора личности.
Подключить кошелек
Это распространенная операция Web3, подключение кошелька в Dapp через плагин кошелька.
Подпись
Этапы подписи включают получение значения Nonce, подпись кошелька и проверку подписи на сервере.
Бэкэнд генерирует случайное значение Nonce и связывает его с адресом. Фронтэнд получает значение Nonce и строит содержимое подписи, включая значение Nonce, доменное имя, ID цепи и т. д., используя методы, предоставленные кошельком, для подписи. В конце концов, подпись отправляется на бэкэнд.
Получить идентификационный номер
После проверки подписи на стороне сервера возвращается идентификатор пользователя (, как JWT). Последующие запросы на стороне клиента должны содержать адрес и идентификатор, чтобы подтвердить право собственности на кошелек.
Практика SIWE
Мы разработаем простой демонстрационный проект SIWE с использованием Next.js, чтобы продемонстрировать основной процесс. Обратите внимание, что этот демо-версий предназначен только для ознакомления, использование в производственной среде может представлять собой проблемы с безопасностью.
Подготовительные работы
NPX создать-следующий-app@14
! [Руководство SIWE: Как сделать ваше децентрализованное приложение более мощным?] ](https://img-cdn.gateio.im/webp-social/moments-53c03d1cb26f29a9d739e3d1aa0816df.webp)
npm install antd @ant-design/web3 @ant-design/web3-wagmi wagmi viem @tanstack/react-query --save
! [Руководство SIWE: Как сделать ваше децентрализованное приложение более мощным?] ](https://img-cdn.gateio.im/webp-social/moments-18a98c883797c414a689c54ae0d65302.webp)
! [Руководство SIWE: Как сделать ваше децентрализованное приложение более мощным?] ](https://img-cdn.gateio.im/webp-social/moments-9351d7f08e48962120d591c3a0c7d245.webp)
Реализовать кнопку подключения кошелька
Реализация интерфейса backend
Оптимизация: использование специализированных узловых сервисов для повышения скорости реакции
Следуя вышеуказанным шагам, мы реализовали основную структуру входа SIWE. Использование профессиональных узловых сервисов может значительно повысить скорость проверки, рекомендуется использовать в производственной среде.
! [Руководство SIWE: Как сделать ваше децентрализованное приложение более мощным?] ](https://img-cdn.gateio.im/webp-social/moments-0ce46cff7473e96e768adfb5fc6dafb8.webp)