In this proejct, the user will use web3.personal.sign method to sign a piece of random string assigned by the server as a challenge nonce. After being signed by the Metamask account, the signature will be passed to the server, and the server will use recoverPersonalSignature from eth-sig-util to recover the address from the signature (with the nonce generated by the server) and to verify if the recovered address is identicial to the Metamask Ethereum account.
npm install
npm start
The web application will run on http://localhost:9487

