Cannot retrieve username through rule

Hi, I am using Universal login and need to access email and username.
I have Requires UserName selected in Connections > Database.

I have setup the following rule:

function addAttributes(user, context, callback) {
 	context.accessToken["http://soundcla.sh/user/nickname"] = user.nickname;
  context.accessToken["http://soundcla.sh/user/name"] = user.name;
 	context.accessToken["http://soundcla.sh/user/email"] = user.email;
  callback(null, user, context);
}

And it works when I debug using “TRY THIS RULE”.

However, when I sign up as a new user it behaves inexplicably:
given values of jonnydoe@mailinator.com and "jdoe" the user object I get from useAuth0 is thus:

{ 
 nickname: "jonnydoe", 
 name: "jonnydoe@mailinator.com",
 email: "jonnydoe@mailinator.com",
}

When I review the user created in the database it uses different labels altogether but the rawJSON shows me that the name I entered on sign up has been assigned to

"username": "jdoe"

By adding user.username to the rule I can get the username but it still doesn’t show in the user object that is returned from useAuth0 in the npm package.

It is extremely confusing. There seems to be a gap between Universal Login config and the spa library?

Hi @itinsley,

You should be able to use the same method you are using to get nickname to get the username in the token.

Did you look at this topic:

Here are a few questions:

  • Are you seeing the username in the token? e.g. "http://soundcla.sh/user/username": "exampleUsername"
  • Which SDK are you using? How are you referencing the username in your code?

Let me know