Problem:
The npm client login has a limitation of [a-z0-9] characters for the username, whereas Nexus Repository 3 user tokens can include any characters that are available with Base64 encoding (https://en.wikipedia.org/wiki/Base64#Base64_table) .
Solution:
In order to use npm with user tokens edit your .npmrc file and use basic authentication, adding your base64 encoded user token. See Authentication Using Basic Auth in Nexus Repo npm format documentation for details.