使用 Hook 在注册时更新用户资料¶
通过 Hook,您可以用编程方式将额外信息写入用户资料的自定义属性。这在资料增强场景中很有用,即通过外部数据源补充更多细节来完善现有客户数据。
实现方法很简单,具体步骤如下:
步骤 1。 确保您已拥有 Authany 账户。如果还没有,可以到 Authany 官网免费创建一个。首先登录您的 Authany 管理台。
步骤 2。 进入用户资料 → 自定义属性页面。
步骤 3。 在此添加 3 个新属性,分别是 city、name 和 timezone:
.png)
步骤 4。进入 Authany 管理台的高级->Hooks 部分。
步骤 5。添加一个新的阻塞事件。
步骤 6。 将 Block Hook 的 Type 选择为 TypeScript,并将 Event 选项设为 User pre-create。您需要从零开始编写一个新的 TypeScript 函数。
步骤 7。 在 Config 选项下点击 Edit Script。
步骤 8。 在编辑器中编写函数逻辑,说明如何集成外部 API 来填充自定义属性。例如:
export default async function(e: EventUserPreCreate): Promise
{
// API Key for IP Geolocation
const apiKey = 'MY_API_KEY';
// Any random IP address
const ipAddress = '8.8.8.8'
// Fetch data from the IP Geolocation API
const response = await fetch(`https://api.ipgeolocation.io/ipgeo?apiKey=${apiKey}&ip=${ipAddress}`);
const data = await response.json();
return {
is_allowed: true,
mutations:{
user: {
custom_attributes: {
"city": data.city,
"country": data.country_name,
"timezone": data.time_zone.name
}
}
},
};
}
步骤 9。 现在进入用户管理并添加一个新用户。
.png)
步骤 10。 用户创建完成后,您应该能看到该用户的自定义属性值已经更新:
.png)
后续步骤¶
学会如何更新用户资料后,您可以进一步了解在 Authany 中获取用户资料的各种方式。