This is actually already built in the much maligned 'web3' that everyone loves to hate ( even if it deserves it sometimes)
Signing into something with your ethereum wallet works well, you get to pick how you store your keys and sign (brain, paper, encrypted file, hardware wallet) and if you use something like argent you can even have social password recovery if you want it for low impact applications. It's so awesome and it just works. I wish more things used it.