user_login_id
Out of the box, Drupal uses the username as login credential and display name. Without a module implementing hook_user_format_name_alter() to alter the displayed name, the value returned from User::getDisplayName() is the same value returned from User::getAccountName().
There is code in Drupal core (and probably in third-party modules) that still call User::getAccountName() (which should be used to show the username to administrators and the user who owns the account) instead of User::getDisplayName(). (See #2629286: Use getDisplayName() for user names consistently for the Drupal core.) This means that the username is still shown on pages where the display name should instead be shown.
This module define a new base field for the User entity and uses its value when authenticating users. Furthermore:
- Users can only change their own login ID by entering the account password
- Changing their own login ID doesn't require additional permissions, apart the permission to edit the account