I've got a web application that uses a two page authentication process:
- Capture the username and password from the user (
login.x.com/#/login) - Capture three characters from the users "memorable word" (
login.x.com/#/login/memorable)- Submit the details to the server via the AngularJS $http service (POST)
- Process the response and either continue to step 3, or repeat step 2
- Redirect user to their home page (
app.x.com/#/dashboard)
The second step currently consists of three single character text fields (<input type="password" maxlength="1" size="1" ...... />) where the user is prompted to enter characters m, n and o from their memorable word.
The problem lies between steps 2 and 3; currently Chrome prompts the user to update their password for the site, with one of the single characters they've entered from their memorable word. I have no desire to stop the user storing their password, but I would like to work out how to stop Chrome from attempting to update their password with one of the characters from their memorable word.
Things that I've tried, without success:
- Setting
autocomplete="off"on the memorable word character inputs - Setting
autocomplete="new-password"on the memorable word character inputs - Setting
autocomplete="memorable-word-character"on the memorable word character inputs. This isn't a "well known" autocomplete "type" but was tried on an "it can't hurt and is worth a go" basis <input type="password" style="display:none"/>as suggested in answers to some other questions
I'd prefer not to change the UI significantly, e.g. Changing the input type so it's no longer password, or changing the text fields to drop-downs. The latter is because we currently permit any character, other than a space, to be used in the memorable word so it's not really viable.
Is there a standard and accepted way to tell Chrome (and other browsers) that these fields are not the users password field?