"Unable to authenticate user, wrong TOTP code" error when trying to log in to Nimera Multibroker account with two-factor authentication codes

Two-factor authentication (2FA) is an additional layer of security applied to access to an account. Once 2FA has been enabled, a user account is accessed with something a user knows (a login and a password), and something a user has (a code).

When trying to log in to Nimera Multibroker with 2FA, the code may not be accepted, returning the Unable to authenticate user, wrong TOTP code error.

This article explains a possible cause, and the solution.

Cause

The Unable to authenticate user, wrong TOTP code error is typically caused by the difference between system time of the clients (e.g., a phone with the Google Authenticator app, and a computer used to access Nimera Multibroker), and the server (Google Authenticator).

Another possible reason for this to happen is an outdated version of Google Authenticator app.

Solution

For the outdated bersion of Google Authenticator app, the solution is to upgrade the version in use.

For the time sync issue, the time correction that can be performed via:

  1. Google Auth time correction;
  2. Updating system time settings for a mobile device;
  3. Updating system time settings for a computer.

1. Google Auth time correction

1. Open Google Authenticator app and click three vertical dots at the upper right corner;

2. Go to Settings.

3. Then, click on 'Time correction for codes'.

4. And finally, 'Sync now'.

2. Updating time settings for a mobile device

In time settings (e.g. Settings -> System -> Date & time, for Android OS), check that date, time and timezone is set correctly. It is also recommended to use the settings of the network, or otherwise automatically update time settings.

3. Updating time settings for a computer

The drill is the same as for 2. Updating time settings for a phone, with the difference on accessing time settings in a corresponding operating system (e.g., Windows, Mac, or Linux). It is also recommended to synchronize time with a time server.