(no title)
shiohime | 4 years ago
As a solo developer making applications in the ecosystem, it's a breath of fresh air to not deal with Oauth+OIDC workflows and utilize wallet connectivity + token authorization to very elegantly handle these scenarios on smaller projects. End user experiences are pretty great too, I quite enjoy being able to authenticate into a website without needing to associate everything with my email address and/or rely on 3rd parties to provide trust solutions such as SSO via Google/FB/Okta/whatever.
And yes, the risk is higher in a decentralized model because if my private keys are compromised on most wallet types, then I can lose my funds / identity. There are solutions to help lower this risk however.
jakear|4 years ago
rglullis|4 years ago
- https://pypi.org/project/django-web3-auth/ (Django authentication backend that authenticates you via your ethereum wallet, has an animation on the page)
shiohime|4 years ago
If you're curious and want to try out the flow, you can download a web3 wallet like MetaMask - https://metamask.io/ - this is a popular web wallet extension for Ethereum and EVM platforms. If you want to try out Solana, I recommend https://phantom.app/
I personally like Solana more than EVM chains at the moment but it doesn't cost anything for you to try either.
Once you have the extension and create your wallet, you can navigate to an NFT marketplace, and connect your wallet.
Ethereum: https://opensea.io/ - The most popular Ethereum NFT marketplace
Solana: https://solanart.io/ - One of the most popular Solana NFT marketplaces
You can then click on the connect / select wallet button, and it will allow for you to connect your wallet to the website. This will authenticate you into their website, there's some additional steps on Opensea IIRC if you want to construct a full profile, but the base authentication only requires this. And like I mentioned, you can authenticate in this manner without owning a single dollar worth of crypto.
For the projects that allow for you to interface with chains / wallets, I've used these:
For ethereum: https://github.com/ChainSafe/web3.js
For solana: https://github.com/solana-labs/solana-web3.js
Essentially what it comes down to is a user has a wallet, that is typically a web wallet via extension, but you can of course use hardware wallets if you'd like, however those do require you to own one, so if you just want to play around with the ecosystem, these extensions are the easiest to use. These above projects are javascript APIs that allow for interacting with wallets and onchain programs.
Note that both of these are frontend solutions. There are backend solutions for both chains.
EDIT - also there is this provided from solana labs as an adapter for many different wallet types: https://github.com/solana-labs/wallet-adapter