Authentifizierung eines Benutzers über MetaMask (wie Cryptokitties)? [Duplikat]

Ich versuche zu verstehen, wie ein Benutzer mit MetaMask authentifiziert werden kann (wie eine Anmeldung), ähnlich wie Cryptokitties Sie dazu bringt, sich anzumelden/anzumelden?

Soweit ich weiß, müssen wir den Benutzer eine Nachricht signieren lassen, um den Besitz des privaten Schlüssels zu authentifizieren, der die Adresse eines Benutzers generiert. Wenn ich also eine web3-Instanz in meiner .js-Datei habe, wie kann ich den Benutzer mit einem Metamask-Login auffordern, ähnlich wie Cryptokitties?

Ich habe dies in meiner Javascript-Datei:

// Is there is an injected web3 instance?
if (typeof web3 !== 'undefined') {
  App.web3Provider = web3.currentProvider;
  web3 = new Web3(web3.currentProvider);
} else {
  // If no injected web3 instance is detected, fallback to Ganache.
  App.web3Provider = new web3.providers.HttpProvider('http://127.0.0.1:7545');
  web3 = new Web3(App.web3Provider);
}

Antworten (2)

Dies beinhaltet das Abrufen clientseitiger Signaturen von Nachrichten und deren serverseitige Überprüfung.

Hier können Sie einen aktuellen MetaMask-Blogbeitrag zu einer unserer neuesten Signaturmethoden sehen:

https://medium.com/metamask/scaling-web3-with-signtypeddata-91d6efc8b290

Web3 Auth ist ein großartiges Projekt, von dem ich denke, dass es Ihnen nicht nur helfen wird, zu verstehen, wie Nachrichten signiert werden, sondern Ihnen auch Best Practices zum Speichern der Authentifizierungsschlüssel im Client-Browser zeigt.