I have a web app served with Node/Express which presently works fine.
I’m trying to set up a separate tenant for my dev/test environment so I don’t have to pollute the login database with test users.
But I’m guessing the existing tenancy had a bunch of legacy options enabled which are no longer available for new signups, as my app no longer receives all the relevant information.
I’m using passport-auth0 which calls the /userinfo endpoint as far as I’m aware.
Using the existing tenant I get something back like this:
{ auth0Id: 'auth0|59a1....',
auth0:
{ accessToken: 'Azy2W6Y5....',
profile:
{ provider: 'auth0',
displayName: 'al@twohill.nz',
id: 'auth0|59a1....',
user_id: 'auth0|59a1....',
name: [Object],
emails: [Array],
picture:
'https://s.gravatar.com/avatar/...',
nickname: 'al',
identities: [Array],
_json: [Object],
_raw:
'{"email":"al@twohill.nz","user_metadata":{"title":"Monsieur","given_name":"Al","family_name":"Twohill","lang":"fr"},"name":"al@twohill.nz","picture":"https://s.gravatar.com/avatar/...","nickname":"al","app_metadata":{"role":"client"},"role":"client","email_verified":false,"clientID":"68BHX6LhcnFq....","updated_at":"2018-10-23T08:27:19.643Z","user_id":"auth0|59a1....","identities":[{"user_id":"59a1....","provider":"auth0","connection":"Username-Password-Authentication","isSocial":false}],"created_at":"2017-08-26T21:39:29.871Z","sub":"auth0|59a1...."}'
}
}
}
Which as you can see includes all the information such as app_metadata etc.
With the new tenancy I get a different response
{ auth0Id: 'auth0|5bce966f9a...',
auth0:
{ profile:
Profile {
displayName: '....client1@gmail.com',
id: 'auth0|5bce966f9a...',
user_id: 'auth0|5bce966f9a...',
name: [Object],
picture:
'https://s.gravatar.com/avatar/...',
nickname: '....client1',
_json: [Object],
_raw:
'{"sub":"auth0|5bce966f9a...","nickname":"....client1","name":"....client1@gmail.com","picture":"https://s.gravatar.com/avatar/...","updated_at":"2018-10-23T08:16:55.756Z"}' },
accessToken: 'W4fnoDB_0ja8C_...',
refreshToken: undefined }
}
This doesn’t have any of the app_metadata in it!
I’ve read the docs here https://auth0.com/docs/user-profile/user-profile-structure and here Understand How Metadata Works in User Profiles - Auth0 Docs but I’ve become thoroughly confused. There is mention of having to create a rule to expose metadata (which I tried but it seems really hard!) or I have to “utilize one of the User endpoints of the Management API”.
Am I missing something or has this gotten unbearably hard? I’m nearly ready to throw in the towel and write my own authentication!