Я не могу найти, как получить user_metadata из API аутентификации Auth0:
$auth0Api = new Authentication($domain, $clientId, $clientSecret);
$tokenInfo = $auth0Api->login([
'username' => $username,
'password' => $password,
'realm' => 'Username-Password-Authentication',
]);
$accessToken = $tokenInfo["access_token"];
$info = $auth0Api->userinfo($accessToken);
Финал $info
массив содержит только основную информацию о пользователях, мета-данных вообще нет. Я попытался создать правило со стороны Auth0, чтобы добавить материал для самого пользователя (делает user.customtag = 'helloworld'
например) и настройки тоже не отображаются.
Информация о пользователе получена:
{
"sub":"auth0|XXXX",
"name":"[email protected]",
"nickname":"XXXX",
"picture":"XXXX.png",
"updated_at":"2017-03-31T08:50:59.819Z",
"email":"[email protected]",
"email_verified":true
}
Вкладка «Raw Json» этого пользователя показывает нечто гораздо более полное:
{
"email": "[email protected]",
"email_verified": true,
"user_id": "auth0|XXXX",
"picture": "XXXX.png",
"nickname": "XXXX",
"identities": [
{
"user_id": "XXXX",
"provider": "auth0",
"connection": "Username-Password-Authentication",
"isSocial": false
}
],
"updated_at": "2017-03-31T08:50:59.819Z",
"created_at": "2017-03-23T16:03:47.075Z",
"name": "XXXX",
"user_metadata": {
"languageCode": "EN"},
"last_ip": "XXXX",
"last_login": "XXXX",
"logins_count": XXXX,
"blocked_for": [],
"guardian_enrollments": []
}
Как это должно работать?
Среда:
Попробуйте запустить приложение локально, затем обновите следующий URL со своими настройками и вставьте его в веб-браузер:
https://YOUR_TENANT.auth0.com/authorize?client_id=YOUR_CLIENT_ID&response_type=code&scope=openid profile&redirect_uri=YOUR_REDIRECT_URI&nonce=12345
Это должно как минимум гарантировать, что вы делаете запрос с правильными областями и т. Д. Вы также должны убедиться, что у вас есть профиль пользователя с назначенными «метаданными», если вы, конечно, ожидаете прочитать эти данные после аутентификации;)
Других решений пока нет …