You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在AWS Amplify的Velocity模板中获取用户邮箱

问题解答

首先明确结论:当前你无法直接从Velocity模板中获取到用户邮箱,需要先调整身份提供商的令牌配置后才可获取。

核心逻辑说明

Velocity模板中$ctx.identity对象下的所有属性(包括claims内的字段),都是直接解析自请求携带的JWT身份令牌的Payload内容,令牌中存在的声明字段才能在模板中读取,令牌中没有的字段无法凭空生成。
从你贴出的上下文结果可以看到,当前$ctx.identity.claims对象内不存在email相关字段,因此当前取不到邮箱值。

操作步骤

如果你使用的是Amazon Cognito作为身份提供商(从现有claim结构判断大概率是该场景):

  • 进入Cognito用户池控制台,打开对应用户池的「App集成」标签页
  • 找到你对接GraphQL API的App客户端,进入编辑页面
  • 在「属性读写权限」配置块中,找到「ID令牌中的OpenID Connect范围」,勾选email范围
  • 向下找到「要在ID令牌中包含的属性」,勾选email属性后保存配置
  • 用户重新登录获取新的JWT令牌后,即可在Velocity模板中通过$ctx.identity.claims.email读取用户邮箱

如果你使用的是自定义OIDC身份提供商:

在身份提供商侧配置,将email字段加入到返回给前端的JWT令牌Payload中即可,配置完成后同样通过$ctx.identity.claims.email读取。


内容的提问来源于stack exchange,提问作者Jens van Hellemondt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:54:04