
I’d like to take a minute this morning to open up a discussion on how we (as developers, ux designers) look at the whole username/password/login interaction.
The normal trend in interaction when signing up for a new web service goes something like this:
- enter my email
- (throw in a username once in a while)
- enter my password
- enter my password again
This is just the basics… sometimes there will even be extra information to enter as well. I want to just gloss over that part for now and just focus on logging in.
So I’ve been thinking about this a lot lately. Why? I have no idea, just trying to make this interaction a little smoother for the end user I guess. You got to focus on something, right?
A few thoughts i’ve seen come up lately go something like this:
When creating an account does the user need to enter a password confirmation? In this age of the super simple password reset. If i didn’t know my password wouldn’t I just hit up the link to reset it? So why do we need that extra step to confirm that it was correctly typed? Of course, this requires a valid communication tunnel to the user that ensures they can get the password reset mechanism. This nicely leads into what we (should?) do about usernames.
The required fields for creating an account vary widely on different services. Sometimes I’m asked for an email, sometimes a username (which could be my email), and sometimes something completely different. Is a username necessary? Could we just ask for an email address and be done with it? This would help ensure that we have a valid communication path for important messages to the user such as password reset. Also this would be enough to be used as a unique identifier until an account is created and a system wide identifier can be created. What? You aren’t specifically setting a system unique for your user? Why would you do that? Using the user entered email/username as an identifier is just stupid in my opinion. I’ve seen this situation before and it’s always messy. Inevitably a user will not want to be known as iloveanal@whatever.com in your system anymore. What can I say… these things happen.
Once a user is in your system, they should always be assigned a unique identifier and that way all interactions can be referenced by that unique. How the user wants to be known in your system is irrelevant at that point. Now from a ux perspective, the user can be known as whatever they want. (I’m looking at you Last.fm, not being able to change your username is idiotic)
Now that we’ve gotten through that, let me lay some password reset thinking on you. Here we go… I forgot my password again, nuff said. You mean you don’t use 1password to remember all of these things for you? I know, I know. Not everyone can be that cool. So this is what I think should be done when you need to use password reset. Hey I forgot my password and there is a link right next to the login fields to help me get my password back. Clicking this link takes the user to a simple form that asks for your EMAIL ADDRESS. That’s it! Please don’t ask me for my email address and username or any other combination of information that I’m not going to remember, considering I couldn’t remember my important password to begin with.
So I think most of what I’ve been pondering has been covered. Should I throw a curveball at you now? When signing up for a new account… do we even need to ask for a password? I think this is one of the most interesting interactions I’ve seen lately. Is the information that will be collected or distributed that important? Does your user care about this information enough password protect it? Instapaper was the first service I’ve seen implement this. Sure you can have a password if you want but it’s not necessary. Do I really care if someone gets into my account and reads the articles I was going to read? Not really. Maybe if they read and deleted them before I could get to them. That wold be a bummer but not world ending. Obviously this path would not be taken for a service that compiles your health records or anything else of that secure nature. I do think for a lot of services this could be a viable option though.
After all of this, what was this discussion about? Well I just wanted to try and open a dialog between fellow developers about how to make this user experience more streamlined for our users. Don’t they deserve it?
This is what I believe this would look like:



With all of this being said, please comment. I want to hear what you all think about this interaction that we have to deal with pretty much every day.