Guía de uso de SIWE: Haz que tu Dapp sea más potente
SIWE(Iniciar sesión con Ethereum) es una forma de verificar la identidad del usuario en Ethereum, similar a iniciar una transacción desde una billetera para demostrar el control del usuario sobre la billetera. Actualmente, la autenticación es muy sencilla, solo es necesario firmar la información en el complemento de la billetera, la mayoría de los complementos de billetera comunes ya son compatibles. Este artículo discute principalmente los escenarios de firma en Ethereum.
¿Es necesario SIWE?
Si tu Dapp tiene los siguientes requisitos, puedes considerar usar SIWE:
Tener su propio sistema de usuarios
Se necesita consultar información relacionada con la privacidad del usuario
Pero si tu Dapp se centra principalmente en funciones de consulta, como aplicaciones similares a etherscan, no necesariamente necesitas SIWE.
Puedes preguntarte, ¿no se supone que al conectar la billetera a la Dapp ya se ha demostrado la propiedad de la billetera? Esto solo es efectivo en el front-end. Para las llamadas a la API que requieren soporte del back-end, solo pasar la dirección no es suficiente, ya que la dirección es información pública y cualquiera puede "tomar prestada" tu identidad.
Principios y proceso de SIWE
El proceso SIWE se puede resumir en tres pasos: conectar la billetera - firmar - obtener la identificación.
Conectar billetera
Esta es una operación común de Web3, conectar la billetera en Dapp a través de un complemento de billetera.
firma
Los pasos de firma incluyen obtener el valor Nonce, la firma de la billetera y la verificación de la firma en el backend.
El backend genera un valor nonce aleatorio y lo asocia con la dirección. El frontend obtiene el valor nonce y construye el contenido de la firma, que incluye el valor nonce, el nombre de dominio, el ID de la cadena, etc., utilizando el método proporcionado por la billetera para firmar. Finalmente, se envía la firma al backend.
Obtener identificación
Después de que la verificación de la firma del backend sea exitosa, se devuelve la identificación de usuario ( como JWT ). En las solicitudes posteriores del frontend, se debe incluir la dirección y la identificación para probar la propiedad de la billetera.
Práctica SIWE
Vamos a desarrollar una demo simple de SIWE utilizando Next.js, para mostrar el proceso básico. Nota: esta demo es solo para presentación, su uso en un entorno de producción podría presentar problemas de seguridad.
Optimización: utilizar servicios de nodos especializados para mejorar la velocidad de respuesta
A través de los pasos anteriores, hemos implementado un marco básico de inicio de sesión SIWE. Utilizar servicios de nodos profesionales puede mejorar significativamente la velocidad de verificación, se recomienda adoptarlo en entornos de producción.
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
SIWE en acción: tres pasos para crear un sistema de identificación de Ethereum
Guía de uso de SIWE: Haz que tu Dapp sea más potente
SIWE(Iniciar sesión con Ethereum) es una forma de verificar la identidad del usuario en Ethereum, similar a iniciar una transacción desde una billetera para demostrar el control del usuario sobre la billetera. Actualmente, la autenticación es muy sencilla, solo es necesario firmar la información en el complemento de la billetera, la mayoría de los complementos de billetera comunes ya son compatibles. Este artículo discute principalmente los escenarios de firma en Ethereum.
¿Es necesario SIWE?
Si tu Dapp tiene los siguientes requisitos, puedes considerar usar SIWE:
Pero si tu Dapp se centra principalmente en funciones de consulta, como aplicaciones similares a etherscan, no necesariamente necesitas SIWE.
Puedes preguntarte, ¿no se supone que al conectar la billetera a la Dapp ya se ha demostrado la propiedad de la billetera? Esto solo es efectivo en el front-end. Para las llamadas a la API que requieren soporte del back-end, solo pasar la dirección no es suficiente, ya que la dirección es información pública y cualquiera puede "tomar prestada" tu identidad.
Principios y proceso de SIWE
El proceso SIWE se puede resumir en tres pasos: conectar la billetera - firmar - obtener la identificación.
Conectar billetera
Esta es una operación común de Web3, conectar la billetera en Dapp a través de un complemento de billetera.
firma
Los pasos de firma incluyen obtener el valor Nonce, la firma de la billetera y la verificación de la firma en el backend.
El backend genera un valor nonce aleatorio y lo asocia con la dirección. El frontend obtiene el valor nonce y construye el contenido de la firma, que incluye el valor nonce, el nombre de dominio, el ID de la cadena, etc., utilizando el método proporcionado por la billetera para firmar. Finalmente, se envía la firma al backend.
Obtener identificación
Después de que la verificación de la firma del backend sea exitosa, se devuelve la identificación de usuario ( como JWT ). En las solicitudes posteriores del frontend, se debe incluir la dirección y la identificación para probar la propiedad de la billetera.
Práctica SIWE
Vamos a desarrollar una demo simple de SIWE utilizando Next.js, para mostrar el proceso básico. Nota: esta demo es solo para presentación, su uso en un entorno de producción podría presentar problemas de seguridad.
trabajo preparatorio
npx create-next-app@14
npm install antd @ant-design/web3 @ant-design/web3-wagmi wagmi viem @tanstack/react-query --save
Implementar el botón de conexión de billetera
Implementar la interfaz de backend
Optimización: utilizar servicios de nodos especializados para mejorar la velocidad de respuesta
A través de los pasos anteriores, hemos implementado un marco básico de inicio de sesión SIWE. Utilizar servicios de nodos profesionales puede mejorar significativamente la velocidad de verificación, se recomienda adoptarlo en entornos de producción.