Skip to content
This repository has been archived by the owner on Apr 3, 2019. It is now read-only.

Allow users to log in from the registration form even if they haven't provided their age #2778

Closed
ryanfeeley opened this issue Jul 17, 2015 · 29 comments
Assignees

Comments

@ryanfeeley
Copy link
Contributor

Up to 10% of our users start the process of logging in by inadvertently entering their credentials into the registration form. We should allow existing account to log in instantly from the registration form, even if they haven't provided their age in the COPPA pulldown.

@shane-tomlinson
Copy link

Ref #182 where this behavior was originally proposed, and then we took it out in #545. I don't remember why.

@ckarlof
Copy link
Contributor

ckarlof commented Aug 3, 2015

I recall some people complaining that it was confusing, surprising, or likely a bug. I also seem to remember some yelling about security problems (not that I believe that).

@rfk
Copy link
Contributor

rfk commented Sep 30, 2015

I agree with @ckarlof, this behaviour would be surprising to most users and I don't see much prior art for it in other websites.

@rfk rfk closed this as completed Sep 30, 2015
@ryanfeeley
Copy link
Contributor Author

@rfk According to Datadog, 15% of logins originate from the registration form. Those users are more likely to be surprised to realize they were on a registration form than if they were just logged in. I can't think of a case where being automatically logged in is not the better experience.

Here's an example of what Tumblr does:
tumblr

@ryanfeeley ryanfeeley reopened this Sep 30, 2015
@shane-tomlinson
Copy link

@ryanfeeley - why did we take this behavior out to begin with, do you remember? I'm neither for nor against the idea, but want to know why we changed the behavior once already. I admit that I'm not a fan of educating users that it's alright to sign in via a signup form.

I am -1 on allowing the user to sign in if they have not entered COPPA info. The entire form should be valid or no go, otherwise we 1) teach users it's alright to enter invalid forms, and 2) we end up with a more convoluted state machine that must be debugged and maintained.

@johngruen
Copy link
Contributor

I agree with @ryanfeeley 100%

@vladikoff
Copy link
Contributor

Against this

For it

Discuss!

@rfk
Copy link
Contributor

rfk commented Oct 6, 2015

FWIW, I regularly do this "sign-in-on-the-sign-up-page" myself, and the flow is pretty nice; I see that there was an error, but I can click straight through to the sign-in page and it has all my details filled out, I just click the "sign in" button. Granted, I do have a very rich mental model of what's going on, but that seems far from terrible to me.

Call me -0 on the proposal. I could be convinced by prior art from other websites like the tumblr example above.

There's also other edge-cases besides COPPA, e.g. what if someone picks "customize sync" on this form, should we try to action it for them even though it's not a new signup?

@ckarlof
Copy link
Contributor

ckarlof commented Oct 9, 2015

FWIW, I'm not "against it" necessarily. I just stating that I recall the reason for us making it the way it is now is because some users complained that the previous magical behavior of signing them in on the signup form was surprising and confusing. I recall one person even thought it was a security problem.

In the wise words of @ryanfeeley, sometimes "manual is better".

@ryanfeeley
Copy link
Contributor Author

This came up in the onboarding meeting as something that is very desirable for the iframed flow.

@shane-tomlinson
Copy link

This came up in the onboarding meeting as something that is very desirable for the iframed flow.

Was it the Growth team that made the request?

Another alternative is to use a single page for both sign in and sign up, like Persona. That'd get rid of the whole issue.

@rfk
Copy link
Contributor

rfk commented Oct 16, 2015

use a single page for both sign in and sign up, like Persona.

And Google's new thing, where you just enter the email address and then it figures out what to do from there.

@ryanfeeley
Copy link
Contributor Author

And Google's new thing, where you just enter the email address and then it figures out what to do from there.

Do I smell an experiment @vladikoff?

@Verdi
Copy link

Verdi commented Dec 4, 2015

Yes this comes up in the first run flow and I've made the mistake many times myself. What's especially frustrating about it is that the form understands what you've done wrong but refuses to do what you've meant to do instead. It forces you to work they way it wants you to work.

So here's what happens:

  • I see an account page and think, "Oh good, I have one of those. I'll just enter my email and password."
  • "Oh age. Whatever, Ok."
  • Click the button.
  • Form says, "Account already exists. Sign in"
  • I say, "I know the account exists. Why don't you just sign me in if you know I have an account? You're the damn computer - you work for me. Sigh."
  • Then I have to click "Sign in" which DOESN'T sign me in and I mumble, "I hate you" under my breath.
  • Then I have to click the real sign in button.

@ryanfeeley
Copy link
Contributor Author

@rfk @vladikoff Can we do it or experiment with it? It would be a nice courtesy for a double-digit percentage of logins.

@rfk
Copy link
Contributor

rfk commented Dec 4, 2015

I've made the mistake many times myself.

Me too. TBH I suspect we have a biased perspective on the pain of this experience, because we're constantly signing into and out of this thing. So yes, let's move it forward, but let's also be realistic about the priority of this work relative to other parts of the experience.

I can parse several potential proposals out of the discussion above. In order of increasing delta from what we currently have:

  1. Have the "Account already exists. Sign in" error message actually sign you in, instead of taking you to the sign-in form.
  2. Require a fully-filled-out form, but process it as a sign-in if the account already exists.
  3. Allow submitting the form with only email and password, and have that sign in existing accounts.
  4. Use a newly-designed unified entry page for both sign in and sign up, e.g. like Persona.

@ryanfeeley after all the back-end-forth above, which of the above would you like to try moving forward with?

@ryanfeeley
Copy link
Contributor Author

Yes to #1 and #3. No to #2 and maybe later as an experiment for #4.

@shane-tomlinson
Copy link

Yes to #1 and #3. No to #2 and maybe later as an experiment for #4.

@ryanfeeley - Can you outline all the success/failure modes?

@ryanfeeley
Copy link
Contributor Author

@shane-tomlinson How's this?

  1. When an existing user enters valid credentials and enters any age (even underage) are they are automatically logged in.
  2. When an existing user enters valid credentials but does not enter any age are they are (still) automatically logged in.
  3. When the user enters valid username but invalid password they are taken to login page and shown "Incorrect password" error message.

@shane-tomlinson
Copy link

Thanks @ryanfeeley - just what I wanted to know!

@ryanfeeley
Copy link
Contributor Author

Can confirm that Pinterest allows users to log in via registration form which is as spare as ours.

@philbooth
Copy link
Contributor

Moving this back to the next column but leaving my face on it because I have an in-progress branch. Although if anyone else wants to take it before I pick it up again, please feel free!

@philbooth
Copy link
Contributor

@ryanfeeley, what do you think about maybe displaying some message on the settings page after an existing user has been signed in from the sign-up form for this issue?

I'm wonder whether doing that would mitigate the surprise/confusion from @ckarlof's comment:

...I recall the reason for us making it the way it is now is because some users complained that the previous magical behavior of signing them in on the signup form was surprising and confusing. I recall one person even thought it was a security problem.

What do you reckon?

@philbooth
Copy link
Contributor

@ryanfeeley, a couple more questions.

Above, you mentioned that we should try to sign users in if the COPPA input is empty or invalid. I've made that change locally, but it leads to a strange flow:

  1. User enters email, password and invalid COPPA age.
  2. We let them click "sign up" and send a request to the server.
  3. Request fails, only then do we go back to the user and tell them that they failed the COPPA check.

This feels a bit funny to me, are we sure we want to let the user submit the form in this case?

And if the answer is yes, do we want to consider make the label of the button dependent on the validity of the COPPA input, or is that too weird? (i.e. it says "sign in" when COPPA is empty or too young and "sign up" when COPPA is valid)

@ryanfeeley
Copy link
Contributor Author

@philbooth Can you clarify "Request fails"?

@philbooth
Copy link
Contributor

@ryanfeeley sorry, I mean in the case where a user doesn't have an existing account, when that request to sign in fails. Does that explain it better?

I guess the main reason I find it weird is from the perspective of what the code is doing, maybe it isn't that weird really.

@ryanfeeley
Copy link
Contributor Author

@philbooth If the user doesn't have an account, they are creating an account. If they leave the age empty, they should be notified that the age is required. If they are underage, they should not get that message. Is this what's happening?

@philbooth
Copy link
Contributor

@ryanfeeley, yep that is what I'm doing at the moment. If you have wording for those two errors as well, that would be awesome.

@rfk
Copy link
Contributor

rfk commented Feb 17, 2016

Epic work team.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants