tchapgouv / tchap-product

Discussions sur les différents points de design
3 stars 0 forks source link

"Forgot password" without signing out of all devices #97

Closed estellecomment closed 1 year ago

estellecomment commented 1 year ago

After verification with security dept, what should be done on all devices :

The hypothesis is that most of the time, user accounts are not compromised, then they don't need to disconnect their devices and lock all their messages.

Status :

History: Current situation : when you go to "forgot my password" on the login page, the complete flow logs out of all existing devices (this is a security feature). Unfortunately users tend to lose their keys doing this, it's complicated to do correctly.

Proposed change : on the "forgot my password" form, display a checkbox for "Sign out of all devices". If you leave it unchecked, you will avoid the loss of keys : you just change your password, and then you log in with the new password. Your other devices don't do anything special. If you check the box, you will get the same flow as before : the password will be changed, all devices will be logged out. They will show the login page (and maybe "You have been logged out, please log in again" or something)

Design problem : we have displayed, in various places, warning messages for the user, so that they don't fall into the trap. With the proposed change, these messages are unnecessary and confusing when the user did not check the "Sign out of all devices" checkbox. We need to remove this confusion, yet still support both flows (checked or unchecked).


The complete flow on web v4 : (with TODOs where we need changes, you can add TODOs if you see more things)


  1. The form now has the checkbox. Screen Shot 2022-11-24 at 11 20 40 AM

  1. If you click the checkbox, fill the form, confirm, you get an additional modal : (if you didn't check the box you don't get this modal)
Screen Shot 2022-11-24 at 11 21 11 AM

For reference, in v2 you had something similar :

Screen Shot 2022-11-24 at 11 29 41 AM
  1. Then : Screen Shot 2022-11-24 at 11 22 49 AM

  1. The email says the same thing whether or not you clicked the checkbox :
Screen Shot 2022-11-24 at 11 24 15 AM
  1. You click the link, and you get this (same thing whether or not you clicked the checkbox) : Screen Shot 2022-11-24 at 11 25 50 AM

  1. Click the button, you get : Screen Shot 2022-11-24 at 11 26 07 AM

NOTE : when you click this button is when the password actually gets changed, and the other devices are logged out (if you clicked the box) sorry actually it's at step 7, not here


  1. Go back to the original page, click "I verified my email"...

  1. ... and you get : image
areox-net commented 1 year ago

@estellecomment Thanks for raising this issue. I think your solution with the checkbox is a good one. However, it's clear that the flow needs to be simplified. We are talking to users who have a problem (forgot their password) and in providing a solution we create a new problem for them!

Another point is: will ANSSI be OK with the option to uncheck the "log out from other devices" ? If they are, let's not disconnect from other devices at all and make life easier to the users!

estellecomment commented 1 year ago

will ANSSI be OK with the option to uncheck the "log out from other devices" ?

Yes they are

If they are, let's not disconnect from other devices at all and make life easier to the users!

They are not OK with removing the option completely though :)

estellecomment commented 1 year ago

An interesting point : the choice to sign out devices is given to the user in the first screen (step 1, I numbered the steps for easier discussion) Technically though, the password change and the signout is done when they click "J'ai vérifié mon adresse mail/I verified my email" (step 7) Before that, if they stop the flow for any reason (change their mind, give up...), the password is not changed and the other devices are not signed out.

areox-net commented 1 year ago

What I like of your solution is that 90% of the users will not check the box. So it leaves them to a simpler flow, as long as we get a different message at the end :)

estellecomment commented 1 year ago

I confirm that we will have a single email and a single confirmation page for both cases (check or no check). That's because the backend sends them, and the backend does not know whether or not the user has checked the box, only tchap-web (or android or ios) knows.

estellecomment commented 1 year ago

In the current solution, we have multiple places in which we display the alarming message : in the warning modal at step 2, in the email at step 4, in the confirmation page at step 5. The actual "catastrophe" happens at step 7.

I'm not sure that displaying warnings everywhere is the best way. People might just ignore them even more since the information is repeated several times.

estellecomment commented 1 year ago

Other problem : We ask users to save their keys, but we don't tell them how. Would be nice to have a link to the help/faq page.

In this flow they are not logged in (that's the point, they forgot their password!), so we cannot send them directly to the action of exporting keys, which requires being logged in. They have to export keys from other devices, if they have any. If they have no other devices, then their history is already lost anyway.

Also, if they have other devices, they actually don't need to export their keys : they will be able to get them after they log in, by emoji exchange between clients. @Nivann @AmelAlili Is that what you tell people when they call support about this ?

estellecomment commented 1 year ago

Aaaaah no they will not be able to get them from other clients, if the other clients are all logged out by the procedure !! Ok.

estellecomment commented 1 year ago

I'm considering deploying this extra checkbox in prod before the whole work of redesign is done, because it is better than nothing. In this case, for now, when the box is left unchecked, we would still have all the alarming messages even though they are not necessary. If people read the warnings, they will export they keys (for nothing, but it doesn't hurt either) and if they don't read, they will finish the procedure without problem. It's a bit messy, I'm undecided. (suggestion from @jdauphant ) Thoughts ?

areox-net commented 1 year ago

It's a little messy but still better than loging out everytime.