要从用户信息中获取规范化的个人资料,可以使用Auth0的Management API。下面是使用Node.js的代码示例:
首先,确保已经安装了auth0和axios这两个npm包。
const axios = require('axios');
const auth0 = require('auth0');
// 初始化Auth0 Management API客户端
const managementApiClient = new auth0.ManagementClient({
domain: 'YOUR_AUTH0_DOMAIN',
clientId: 'YOUR_AUTH0_CLIENT_ID',
clientSecret: 'YOUR_AUTH0_CLIENT_SECRET',
scope: 'read:users',
});
// 获取访问令牌
async function getAccessToken() {
const response = await axios.post(`https://YOUR_AUTH0_DOMAIN/oauth/token`, {
grant_type: 'client_credentials',
client_id: 'YOUR_AUTH0_CLIENT_ID',
client_secret: 'YOUR_AUTH0_CLIENT_SECRET',
audience: `https://YOUR_AUTH0_DOMAIN/api/v2/`,
});
return response.data.access_token;
}
// 从用户信息中获取规范化的个人资料
async function getNormalizedUserProfile(userId) {
const accessToken = await getAccessToken();
const user = await managementApiClient.getUser({ id: userId });
const normalizedUserProfile = {
id: user.user_id,
email: user.email,
name: user.name,
picture: user.picture,
// 添加其他需要的属性
};
return normalizedUserProfile;
}
// 使用示例
getNormalizedUserProfile('USER_ID').then((normalizedUserProfile) => {
console.log(normalizedUserProfile);
});
请注意,要使上述代码正确运行,需要替换以下参数:
YOUR_AUTH0_DOMAIN:您的Auth0域名YOUR_AUTH0_CLIENT_ID:您的Auth0客户端IDYOUR_AUTH0_CLIENT_SECRET:您的Auth0客户端密钥USER_ID:要获取个人资料的用户ID此示例只是演示如何使用Auth0的Management API从用户信息中获取规范化的个人资料。您可以根据自己的需求修改代码,并添加其他需要的属性。