UserInfo¶
Authany 提供了一个 UserInfo 端点,供您的客户端应用发送请求以获取当前已通过身份验证用户的信息。当前用户是指请求中所包含访问令牌的所有者。
以下是 UserInfo 端点的路径:
该端点的完整 URL 示例如下:https://your-project.authanyid.com/oauth2/userinfo。请将其中的「your-project.authanyid.com」替换为您 Authany 项目对应的正确主机名。
您也可以在 Authany 管理台的 应用 > [您的应用] 中,找到您 Authany OIDC 客户端应用对应 UserInfo 端点的完整 URL。

如果您使用的是任意一款 Authany SDK,只需调用一个方法即可从 UserInfo 端点请求数据。例如,在 JavaScript Authany SDK 中,fetchUserInfo() 方法会返回当前用户的信息。您可以在这里了解更多其他 SDK 的信息。
以下代码展示了 UserInfo 端点 JSON 响应中通常包含的结构和部分信息示例。
{
"custom_attributes": {},
"email": "user@gmail.com",
"email_verified": true,
"family_name": "John",
"gender": "male",
"given_name": "Doe",
"phone_number": "0805551112",
"phone_number_verified": true,
"https://authgear.com/claims/user/identities": [
{
"type": "login_id",
"created_at": "2025-06-04T10:50:00.000000Z",
"updated_at": "2025-06-04T10:50:00.000000Z",
"login_id_key": "email",
"login_id_type": "email"
},
{
"type": "oauth",
"created_at": "2025-06-04T10:52:00.000000Z",
"updated_at": "2025-06-04T10:52:00.000000Z",
"oauth_provider_type": "google",
"oauth_provider_alias": "google"
}
],
"https://authgear.com/claims/user/authenticators": [
{
"created_at": "2025-06-04T10:50:00.00000Z",
"updated_at": "2025-06-04T10:50:00.00000Z",
"type": "oob_otp_email",
"kind": "primary"
},
{
"created_at": "2025-06-04T10:51:00.00000Z",
"updated_at": "2025-06-04T10:51:00.00000Z",
"type": "password",
"kind": "primary"
}
],
"https://authgear.com/claims/user/can_reauthenticate": true,
"https://authgear.com/claims/user/is_anonymous": false,
"https://authgear.com/claims/user/is_verified": true,
"sub": "e3079029-f123-4a56-78b9-c0de12f3a4af",
"updated_at": 1694947082,
"x_web3": {
"accounts": []
}
}
该端点既可以返回 Authany 定义的标准属性,也可以返回您为应用定义的自定义属性。
以下部分将说明各个标准属性,并给出部分自定义属性的示例。
Standard Attributes¶
email:与当前用户账号关联的邮箱地址。email_verified:一个布尔值,表示用户邮箱当前的验证状态。family_name:当前用户的姓氏。given_name:当前用户的名字。gender:保存当前用户设置的性别值(male、female 或其他字符串)。sub:sub是 "subject" 的缩写,是 OIDC 中的标准字段。其值是 Authany 为用户生成的唯一 ID。您可以使用该用户 ID 生成一个用户节点 ID,然后在 Admin API 中用它来查询用户或执行 mutation。https://authgear.com/claims/user/identities:该字段包含一个与用户关联的身份(identity)数组。每个元素都固定包含:type:身份类型 ——login_id、oauth、passkey、biometric、anonymous、siwe或ldapcreated_at:身份创建的时间戳updated_at:身份最后一次更新的时间戳
根据 type 的不同,还会包含以下附加字段:
* 对于 login_id:login_id_key(配置的键名,例如 "email")和 login_id_type(解析出的类型:"email"、"phone" 或 "username")
* 对于 oauth:oauth_provider_type(例如 "google")和 oauth_provider_alias(配置的别名)
* https://authgear.com/claims/user/authenticators:该字段包含一个数组,记录了用户拥有的验证器(authenticator)信息。
* created_at:验证器创建的时间戳
* updated_at:验证器最后一次更新的时间戳
* type:验证器类型,可能的取值有 oob_otp_sms、oob_otp_email、password、totp
* kind:primary(主要)或 secondary(次要)验证器
* https://authgear.com/claims/user/can_reauthenticate:该字段包含一个布尔值,如果该用户可以执行重新身份验证则为 true,否则为 false。
* https://authgear.com/claims/user/is_anonymous:如果当前用户是匿名用户,返回 true。
* https://authgear.com/claims/user/is_verified:该字段包含一个布尔值,如果当前用户已验证邮箱则为 true,否则为 false。
* phone_number:与当前用户账号关联的手机号。
* phone_number_verified:如果关联的手机号已验证,返回 true,否则返回 false。
* picture:包含用户头像照片的 URL。
* updated_at:返回用户资料最后一次更新的日期和时间。
* custom_attributes:该字段包含一个对象,其中包含您定义的所有自定义属性。
* x_web3:已弃用 —— 该字段包含一个与已弃用的 web3 支持相关的详情对象。
注意:上面的列表并未穷尽 UserInfo 端点可能返回的所有字段。此外,对当前用户未定义的字段不会出现在响应中。例如,如果用户账号未关联任何手机号,响应的 JSON 中将不包含 phone_number 字段。
Custom Attributes¶
如上一节所述,您的自定义属性会包含在 JSON 响应 custom_attributes 字段下的一个对象中。
您可以在 Authany 管理台的 用户资料 > 自定义属性 中设置自定义属性。
如果我们为 passport_number 添加一个新的自定义属性,UserInfo 端点的响应将如下所示: