2 votes

Le NFT peut-il être utilisé pour l'authentification dans les applications web ?

Les NFT peuvent-ils être utilisés comme moyen d'authentification ? Le scénario est le suivant : un utilisateur achète un NFT (ERC721) et visite le site qui utilise ce jeton pour l'authentification. Je suppose que le web3.js du site vérifie le portefeuille de l'utilisateur, s'il a le jeton dans son portefeuille, il peut alors accéder au site.... mais qu'en est-il des appels côté serveur ? le serveur peut vérifier le grand livre pour voir qui possède le jeton, mais comment peut-il savoir si la personne qui appelle est le propriétaire ? l'adresse peut être usurpée donc l'envoyer avec l'appel est hors de question. C'est aussi le cas si un utilisateur vend son jeton et qu'un nouvel utilisateur le possède.

Je pense à quelque chose comme la signature numérique mais comment obtenir la clé publique du propriétaire et est-ce que demander aux utilisateurs de signer les messages est un problème... Je suis un noob de Solidity, qu'est-ce que je sais mais... SO Je dois essayer de répondre à ma question avant de demander une réponse. Certains codes sont également obligatoires pour tous les messages.

pragma solidity ^0.4.22;contract helloWorld {
 function renderHelloWorld () public pure returns (string) {
   return 'helloWorld';
 }
}

2voto

Michael Graczyk Points 3469

Vérifier que le spectateur a une adresse qui possède le jeton n'est pas suffisant. Vous devez confirmer que le spectateur contrôle l'adresse en lui demandant de signer un message.

Un système de ce type est appelé MetaKey .

Si vous souhaitez coordonner des sessions avec un backend, vous devez effectuer un travail supplémentaire car le NFT pourrait être transféré. Vous devez révoquer la clé de session lorsque le NFT est transféré, ce qui nécessite de surveiller la blockchain pour les événements de transfert.

Je ne recommande pas de construire une infrastructure de signalisation autour d'un NFT. Il sera extrêmement difficile, voire impossible, d'éviter les failles de sécurité. Il est préférable d'authentifier les personnes en utilisant la signature d'un portefeuille. Il existe de nombreux tutoriels en ligne pour construire ce flux, par exemple aquí .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X