local-motion / product

Apache License 2.0
2 stars 1 forks source link

Epic: Magic login #264

Open jamalv opened 5 years ago

jamalv commented 5 years ago

Context:

To optimize the potential for (viral) growth of the platform, it is essential to lower the barriers of entry and remove any friction we can. Identity management and user onboarding is very important in this.

Currently to get registered and login the user has to perform 15 steps:

  1. Perform action that requires account, get redirected to login screen
  2. Click “maak een account” on login screen
  3. Fill username
  4. Fill password
  5. Fill emailadress
  6. Agree to terms & conditions
  7. Click “maak het account”
  8. Go to mailbox and open email
  9. Copy verification code
  10. Go back to browser
  11. Paste or enter code
  12. Click confirm
  13. Fill email adress (not username, which will be prefilled by browser)
  14. Fill password
  15. Click login

Proposal:

Using the “magic login” system used by forus we can reduce this to 4 or 5 steps:

  1. Perform action that requires account, get redirected to login
  2. Fill emailadress*
  3. Click “send magic sign in link to xx@xx.com”
  4. Go to mailbox and open email
  5. Click link and get redirected and logged in to platform

*If user already signed by email, we can prefill the email adress, then this action is not required.

jamalv commented 5 years ago

Advantage from a security standpoint; we dont store any passwords. We use the protection of the mailbox. Since a lot of services offer “account recovery” trough email, this is common practice.

maxvisser commented 5 years ago

I think I saw something like this in the specs. Maybe research if Cognito even support something like this. I did a quick google search and clicked on this github issue: https://github.com/aws-amplify/amplify-js/issues/1896

It seems somewhat possible.

jamalv commented 5 years ago

Results from alpha test 2 and 3: current signup took 5m 54s and 6m 13s respectively.

waydelyle commented 5 years ago

I have a working solution https://github.com/aws-amplify/amplify-js/issues/1896#issuecomment-539452876