跳转至

使用 Hook 在注册时更新用户资料

通过 Hook,您可以用编程方式将额外信息写入用户资料的自定义属性。这在资料增强场景中很有用,即通过外部数据源补充更多细节来完善现有客户数据。

实现方法很简单,具体步骤如下:

步骤 1。 确保您已拥有 Authany 账户。如果还没有,可以到 Authany 官网免费创建一个。首先登录您的 Authany 管理台。

步骤 2。 进入用户资料 → 自定义属性页面。

步骤 3。 在此添加 3 个新属性,分别是 city、name 和 timezone:

步骤 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。 现在进入用户管理并添加一个新用户。

步骤 10。 用户创建完成后,您应该能看到该用户的自定义属性值已经更新:

后续步骤

学会如何更新用户资料后,您可以进一步了解在 Authany 中获取用户资料的各种方式。