JWT 访问令牌¶
您可以在 Authany 管理台中应用的配置页面里,启用将 JWT 作为访问令牌签发。

这个 JWT 包含多个用于描述您的用户和应用的声明。Authany 生成的 JWT 访问令牌中包含专门为 Authany 设计的声明,此外,它可能也会包含一些标准 JWT 声明(默认情况下不一定包含)。
在本节中,我们将列出 JWT 访问令牌默认包含的所有声明,并逐一说明。
以下代码展示了 Authany 签发的 JWT 访问令牌中声明的示例:
{
"aud": [
"https://my-project.authanyid.com"
],
"client_id": "497d841ea22f33d3",
"exp": 1696432809,
"https://authgear.com/claims/user/can_reauthenticate": true,
"https://authgear.com/claims/user/is_anonymous": false,
"https://authgear.com/claims/user/is_verified": true,
"iat": 1696431009,
"iss": "https://my-project.authanyid.com",
"jti": "820a487ac1ce118cade7e8eca68e68a9288cf312343b83a5678f8bfd091b4768",
"sub": "e3079029-f123-4c56-80c1-c2cd63a5b6af"
}
aud:aud 声明代表 “audience”(受众),其值指定了该 JWT 的接收方 —— 参见 RFC 7519。在 Authany 中,aud的值是您 Authany 项目的端点,例如https://my-project.authanyid.com。不过,在 ID 令牌中,aud的值是客户端 ID。client_id:该声明包含您 Authany 应用的客户端 ID。当aud声明的内容是项目端点时,这个声明会很有帮助。exp:exp 声明代表过期时间(expiration)。该声明的值定义了令牌到期、不再被接受用于任何处理的时间点 —— 参见 RFC 7519。https://authgear.com/claims/user/can_reauthenticate:当值为true时,该声明表示用户可以重新进行身份验证;为false时则表示不可以。例如,仅通过 Google 登录的用户无法重新进行身份验证,而设置了密码的用户则可以。该声明可以帮助开发者在调用 Authany SDK 中的reauthenticate()之前先进行检查。https://authgear.com/claims/user/is_anonymous:当值为true时,该声明表示该用户是匿名用户。您可以在 Authany 管理台中将用户匿名化。https://authgear.com/claims/user/is_verified:该声明的值是一个布尔值,表示该用户是否被判定为已验证。您可以在 Authany 管理台中配置判定的具体条件。如果您的项目同时启用了邮箱和手机号,可以在身份验证 > 登录方式 > 验证 > 配置如何验证用户 > isVerified 为 true 的条件…… 中查看此设置。iat:iat 代表“签发时间”(issued at)。iat声明的值是该 JWT 的签发时间 —— 参见 RFC 7519。iss:iss 代表签发方(issuer)。该声明标识了签发此 JWT 的主体 —— 参见 RFC 7519。对于 Authany,iss声明的值是您项目的端点。jti:jti 代表 “JWT ID”,是该 JWT 访问令牌的唯一标识符 —— 参见 RFC 7519。sub:sub 是 “subject”(主体)的缩写,是 OIDC 中的一个标准字段。其值是 Authany 生成的用户唯一 ID。您可以使用该用户 ID 生成用户节点 ID,然后在 Admin API 中使用该节点 ID 查询用户或执行变更操作。
添加自定义声明¶
除了以上声明外,您还可以使用 JavaScript Hook 向 JWT 访问令牌添加诸如用户的姓名和邮箱等额外声明。
关于更详细的步骤,请参见这篇文章:如何为 JWT 访问令牌添加自定义字段。