【发布时间】:2017-08-24 09:18:35
【问题描述】:
我没有找到如何从 Auth0 身份验证 api 获取 user_metadata:
$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数组只包含主要的用户信息,根本没有meta_data。我尝试从 Auth0 端创建规则以向用户本身添加内容(例如执行 user.customtag = 'helloworld'),但自定义也没有显示。
检索到的用户信息:
{
"sub":"auth0|XXXX",
"name":"XXXX@XXXX.com",
"nickname":"XXXX",
"picture":"XXXX.png",
"updated_at":"2017-03-31T08:50:59.819Z",
"email":"XXXX@XXXX.com",
"email_verified":true
}
该用户的“Raw Json”选项卡显示了更完整的内容:
{
"email": "XXXX@XXXX.com",
"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": []
}
它应该如何工作?
环境:
- 作曲家:“auth0/auth0-php”:“~5.0”
- php 7.1
- Auth0 免费帐号
【问题讨论】:
-
您能否提供更多信息 - 您正在使用哪些库/版本/您的 Auth0 租户是否启用了 OIDC 一致性等。此上下文将有助于确定适当的答案(我想帮助您但总体而言,“这取决于”很多因素,行为将是什么)。
-
@arcseldon 我添加了关于所有这些的信息 - 我不知道 OIDC 的事情
-
刚刚检查过,这目前适用于我运行的一个快速示例 - 只要 ID 令牌和用户配置文件都包含来自“元数据”字段的数据
-
相关配置文件(在 Auth0 仪表板中)是否已经包含元数据属性?在您的请求中 - 您是否要求提供该范围信息?
-
YOUR_TENANT.auth0.com/… profile&redirect_uri=YOUR_REDIRECT_URI&nonce=12345