I have a registration form with:


I am thinking about remove the username field and generate something like username_123 and then give the opportunity to the user change his username later. Right now the field username is required.

However, I have the fear of majority of the users not changing the default username. My fear is that some of my users won't know what to put in that field, so I'll have some bad usernames like testtest or test. Unfortunately, getting part of email as username is not an option, too invasive in this particular case.

Should it be something that's required or should I generate a username for my users?

  • 1
    What's the problem with usernames like "testtest" and "test"? Is there some sort of data issues there? Jan 20, 2017 at 13:46
  • 1
    @hd. the username is just a persona for comments or posts, not used to login.
    – user455318
    Jan 20, 2017 at 15:13
  • 4
    @AndrewMartin Is not a real problem in terms of functionality, but is strange to chat with an user called test, right? But well, is strange to talk with user455318 too and stackoverflow does the same.
    – user455318
    Jan 20, 2017 at 15:23
  • 4
    It might be clearer if you distinguish between a username and a display name. There's a lot of confusion generated by calling a display name a username. Jan 20, 2017 at 17:15
  • 4
    However, I have the fear of majority of the users not changing the default username. - looking at your own username, the fear seems legitimate. Jan 20, 2017 at 19:39

7 Answers 7


having autogenerated user name is probably not good idea as they may forget it.

Let them choose a username.

  • 11
    If they can login with an email address, is this a problem? Jan 20, 2017 at 18:54
  • 2
    The username could be autogenerated but changeable possibly. And if email is also a valid login identifier then autogeneration with or without changeable username is irrelevant. Jan 20, 2017 at 23:18

Why not use their email address as their username, like thousands of sites do?

If you need them to choose a username at a later date you can provide a screen for doing so and guide them to create one and let them know where it will be used across the site, like a message board.

  • 4
    I don't want to disclose the email, or part of the email. simple as that. Privacy concerns
    – user455318
    Jan 20, 2017 at 15:19
  • 3
    You're not disclosing it, you're using it to log in. Jan 20, 2017 at 15:21
  • 8
    No, I need the username to identify each user in plataform, similar to stackoverflow or reddit. The username is a public persona. To login I use the email.
    – user455318
    Jan 20, 2017 at 15:25
  • 3
    You're not reading what I wrote. Jan 20, 2017 at 15:47
  • 3
    I am reading but unfortunately i don't understand your point.
    – user455318
    Jan 20, 2017 at 16:22

As the username is a handle by which the user will be known, you should make it easy for them to change it. Why not copy stackexchange? Prefill with a userID like user12345 (which may be related to your users table key field), but put the focus in the prefilled box (maybe even select the username) for the user to type their real name. (This is approximate, it's a long time since I created my logon here). If the user wants to be called "Test" let them -- for all you know it's their real name just from a culture you don't know. For that matter if they want to be called "WhyShouldITypeInThisStupidBox" it's up to them.

  • Elsewhere on se there's someone using the handle "Suspended User" -- it might be confusing but it's not a real problem.
    – Chris H
    Jan 20, 2017 at 16:17

Indicate to the user that whatever they put in the username input will be what they'll be shown as to other users. This will influence their decision and they can decide if they want to make it something weird ("sdfhsdiohspd") or something personal to them ("Frank").

If the username has already been taken, and your application needs the username to be unique, inform the user or give them some alternatives, much like Google does on signup.

enter image description here

Also, you seem cautious on what the username can be, so you could create a blacklist of words, but I don't think it'll be foolproof, and people will find ways around it by using things such as Leet, or "impersonating" letters (ie: uppercase i becoming lowercase l). You could try adding in filters using MauriceButler/badwords or LDNOOBW/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words to prevent people "cheating the system" - but then you could fall victim to the Scunthorpe problem.

In conclusion, keep the username box if you don't want to publish the users e-mail and let them decide on what the username should be.

The user should have the freedom to decide how they're recognised by others and how personal the recognition should be.

  • I haven't tested here or at Wikipedia, but I think that certainly in the latter case usernames are forbidden from using obscenities only by policy and a way to flag for the admins. After all, defamatory usernames don't have to involve bad words to have an impact.
    – Chris H
    Jan 20, 2017 at 15:56

This will depend on how important is the persona in your site.

If the site importance doesn't rely on ("verified") relation between users or if whom is writing the content is less important than the content itself, maybe it is alright to give the user an auto-generated username on sign up.

Give both options:

Automatically suggested username or Custom username.

If you want to go for auto-generated usernames on sign-up, give the user the option to enter a custom username if he doesn't want an auto-generated one. This way you remove the step for the user of changing his username after he is being assigned one.


Auto-generated usernames are used in registration forms where entering a username is optional, and can be later changed. If your form requires username better don't generate it.

Here are some reasons:

  • you're violating the usability heuristic "Support internal locus of control"
  • interaction cost is increased because the user have to delete the autogenerated username.
  • novice users might think that the username could not be changed
  • users might forget the username @colmcq

As you mentioned above in a comment, let the users use their email ID to login into the system.

As for the system identifying the users, it's probably a good idea to take an approach similar to what Facebook does. Facebook generates a string of random numbers assigned to the user as the username, and replaces it with a chosen string if the user decides to set a specific user name for himself / herself. Since the user is not using the username to log into the system, even if he / she does not choose to customize it, they have no need to know of it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.