regen-network / keystone

:rocket: key management system
Apache License 2.0
4 stars 4 forks source link

Allow Keplr Wallet based signup and login to Registry (and other Regen services) #41

Open frumioj opened 2 years ago

frumioj commented 2 years ago
  1. Detect that a browser has Keplr Wallet
  2. If so, and user is unknown, add Keplr to the list of options presented for login
  3. Use the Keplr JS APIs to authenticate the user via a Keplr signed transaction, as done by Commonwealth https://github.com/hicommonwealth/commonwealth https://github.com/hicommonwealth/commonwealth/blob/master/client/scripts/controllers/app/webWallets/keplr_web_wallet.ts https://github.com/hicommonwealth/commonwealth/blob/5486938d8cd4b0811b6841b6b4053549237270e5/shared/adapters/chain/cosmos/keys.ts#L6

This requires both some frontend (JS) development, but also some changes to the backend system so that we can distinguish a Keplr user from an auth0 (social) user in their user profile.

Ideally, we would have a Regen Identity Provider which maintained the user profile and did any necessary authentication of users as a separate service, providing authorization tokens (a la OAuth 2) to relying party services such as Registry.

frumioj commented 2 years ago

Notice how Commonwealth deals with multiple wallets: https://github.com/hicommonwealth/commonwealth/blob/master/client/scripts/controllers/app/web_wallets.ts