Аутентификация пользователя через MetaMask (например, Cryptokitties)? [дубликат]

Я пытаюсь понять, как пользователь может пройти аутентификацию (например, войти в систему) с помощью MetaMask, подобно тому, как Cryptokitties заставляет вас регистрироваться/входить в систему?

Насколько я понимаю, нам нужно, чтобы пользователь подписал сообщение, чтобы подтвердить право собственности на закрытый ключ, который генерирует адрес пользователя. Итак, если у меня есть экземпляр web3 в моем файле .js, как я могу предложить пользователю войти в систему с помощью метамаски, например Cryptokitties?

У меня есть это в моем файле javascript:

// 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);
}

Ответы (2)

Это включает в себя получение подписей сообщений на стороне клиента и их проверку на стороне сервера.

Вы можете увидеть недавнюю запись в блоге MetaMask об одном из наших последних методов подписи здесь:

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

Web3 Auth — отличный проект, который, я думаю, поможет вам не только понять, как подписывать сообщения, но и покажет вам лучшие методы хранения ключей аутентификации в браузере клиентов.