This module allows users to login with a custom identification number (or string). To configure this module, the site builder creates a (or specifies a pre-existing) field on the user entity. The value stored in this field for a particular user can then be used as the identification login credential.

Use Case

An organization that wants users to be able to login using a custom identification number and password. This means each user account will have three unique identifiers:

  • core user name
  • core user e-mail address
  • custom user identification number (or string)

Why not use just use the core "name" field on the User Entity?

It is totally possible to just use the core "name" field to store the user's custom identification number. By default, they could then login using their custom identification number as the user name. That works great, but...

Say for example, a user's id was "x7893ksnsf39gcq"...

  • A user's profile page that says "Hello, x7893ksnsf39gcq" is not very user friendly
  • A default value of "x7893ksnsf39gcq" on a text field that defaults to the user name is not very friendly
  • The contact form feature that sends an e-mail addressed to "x7893ksnsf39gcq" is not very friendly

What about hook_username_alter() and theme_username()?

Excellent question... you can use this hook and theme function to output a "pretty" user name (perhaps using data from a user's address field data), but many contributed modules (and Drupal core) often use the "name" field's value directly and these functions will not be utilized, and you'll often end up with "x7893ksnsf39gcq" being shown, which customers tend to hate, and makes users feel like a number.

So without further ado, give this module a try...

Supporting organizations: 

Project Information