aragon / client

(Aragon 1) Create and manage decentralized organizations on Ethereum.
https://client.aragon.org
GNU Affero General Public License v3.0
834 stars 275 forks source link

Add support for non-injected Web3 providers (Portis, Fortmatic) #900

Closed sohkai closed 4 years ago

sohkai commented 5 years ago

See Portis and its UX guidelines.

Portis is essentially a centralized custodian of your Ethereum account, that makes it easy for you to sign up and recover keys via email.


Technically it is not difficult to integrate, but it does require some changes to how we currently handle providers.

Our current strategy:

  1. Check if a local web3 provider is installed (e.g. MetaMask, Frame extension, etc.), use it if so
  2. Fallback to connecting to Frame through eth-provider

With Portis, we would need to introduce a new step, likely at the beginning, that asks the user what signing provider they'd like to use. We could save this information locally, so the next the user loads, they would automatically use the same provider as last time (but ideally have a way to switch providers if desired).

bpierre commented 5 years ago

With Portis, we would need to introduce a new step, likely at the beginning, that asks the user what signing provider they'd like to use.

This could also be a improvement compared to the current mechanism, e.g. when a user has Metamask installed but explicitly wants to connect to Frame or another provider.

onbjerg commented 5 years ago

Another note is that some providers require an asynchronous setup step, see e.g. Torus. I did a small hacky implementation of it in the current codebase for a hackathon project.

luisivan commented 5 years ago

I'd like to propose Fortmatic as well. We will do an analysis of the different options!

lkngtn commented 5 years ago

Also relevant to this discussion is ENSLogin an initiative started during Berlin Blockchain Week to standardize web3 provider integrations, so a dapp can support all providers even ones they do not explicitly integrate. https://github.com/enslogin/Hackathon

miguelmota commented 4 years ago

Would like to propose contract-based account login solutions like Authereum which is also offered as a web3 provider

sohkai commented 4 years ago

Closed with https://github.com/aragon/aragon/pull/1277; we are now using use-wallet and can easily add new providers in the future.