Je me suis récemment plongé dans SIWE et honnêtement, c'est une révolution pour quiconque construit des Dapps nécessitant une authentification utilisateur correcte. Laissez-moi vous expliquer ce que j'ai appris.



Donc, voici le truc concernant les connexions de portefeuille - oui, vous pouvez connecter votre portefeuille à une Dapp, mais cela ne prouve pas complètement la propriété au backend. Votre adresse est une information publique, n'est-ce pas ? Théoriquement, n'importe qui pourrait prétendre être vous dans des appels API. C'est là qu'intervient Sign-In with Ethereum. C'est essentiellement utiliser votre portefeuille pour prouver cryptographiquement que vous contrôlez cette adresse, de la même manière que vous signeriez une transaction.

Quand est-ce que SIWE vaut vraiment la peine d'être implémenté ? Si votre Dapp a des comptes utilisateur ou gère des données sensibles, absolument. Les applications en lecture seule comme Etherscan ? Probablement pas besoin. Mais si vous construisez quelque chose avec un vrai système utilisateur, SIWE est la voie à suivre.

Le processus lui-même est assez simple - trois étapes principales. D'abord, une connexion standard au portefeuille via des plugins. Ensuite, vous demandez un Nonce à votre backend (cela empêche les attaques par rejeu), vous construisez un message avec ce Nonce plus d'autres données comme le domaine et l'ID de la chaîne, et vous le signez via votre portefeuille. Enfin, le backend vérifie cette signature et vous renvoie un jeton JWT pour les requêtes suivantes.

J'ai expérimenté la mise en œuvre réelle en utilisant Next.js et Ant Design Web3. La configuration est plus simple que je ne le pensais. Vous installez les dépendances, connectez le fournisseur Wagmi avec votre configuration SIWE, et voilà - la connexion au portefeuille et la signature sont intégrées. Les éléments clés sont le point de terminaison Nonce (qui génère et stocke une valeur aléatoire liée à l'adresse de l'utilisateur) et le point de vérification (qui vérifie la signature, valide que le Nonce correspond, puis émet le JWT).

Une chose qui m'a surpris - la configuration RPC par défaut était douloureusement lente, prenant environ 30 secondes pour vérifier les signatures. Je suis passé à un service de nœud dédié et cela a réduit considérablement ce délai. C'est une optimisation cruciale si vous passez en production.

Évidemment, le code de démo disponible est uniquement pour l'apprentissage. Une utilisation en production nécessite une gestion appropriée des JWT, une limitation du taux, et d'autres mesures de sécurité. Mais le flux SIWE de base est solide et devient assez standard dans l'écosystème. Si vous êtes sérieux à propos de construire des Dapps avec une authentification correcte, cela vaut vraiment la peine de le comprendre.
ETH-1,36%
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Reposter
  • Partager
Commentaire
Ajouter un commentaire
Ajouter un commentaire
Aucun commentaire
  • Épingler