可以使用Auth0的Management API获取和更新用户信息。具体步骤如下:
1)在Auth0控制台中创建一个API,并记录API的域名和Token。
2)使用以下代码获取所有用户的信息:
import requests
import json
headers = {'Authorization': 'Bearer {API_TOKEN}'}
url = 'https://{YOUR_DOMAIN}.auth0.com/api/v2/users'
response = requests.get(url, headers=headers)
users = json.loads(response.content)
3)使用以下代码更新某个用户的信息:
data = {"user_metadata": {"age": 30, "favorite_color": "green"}}
response = requests.patch('https://{YOUR_DOMAIN}.auth0.com/api/v2/users/{USER_ID}', headers=headers, json=data)
Auth0的规则可以执行JavaScript代码,可以在用户登录时更新用户信息。具体步骤如下:
1)在Auth0控制台中的规则选项卡中创建一个规则。
2)使用以下代码从Auth0管理API获取用户信息并更新用户的自定义设置(通过user.app_metadata
和user.user_metadata
存储):
function (user, context, callback) {
const request = require('request@2.88.2');
const userId = user.user_id;
const accessToken = auth0.accessToken;
const audience = auth0.apiV2Audience;
const options = {
method: 'GET',
url: `https://${auth0.domain}/api/v2/users/${userId}`,
headers: {
Authorization: `Bearer ${accessToken}`,
'Content-type': 'application/json',
'Accept': 'application/json',
'Auth0-Client': `{"name":"auth0-twilio-ext-js","version":"1.0.0"}`
},
qs: {
fields: 'user_metadata,app_metadata'
},
audience: `${audience}`
};
request(options, function (error, response, body) {
if (error) return callback(error);
if (response.statusCode !== 200) {
return callback(new Error('Failed to load user profile.'));
}
const userMetadata = body.user_metadata || {};
const appMetadata = body.app_metadata || {};
const update = {};
update.user_metadata = userMetadata;
update.app_metadata = appMetadata;
// add/update user metadata here
// example:
update.user_metadata.age = 30;
update.user_metadata.color = 'green';
const updateUserMetadataOptions = {
url:
下一篇:Auth0通配符登录回调