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

Amplify Cognito谷歌SSO无姓氏报错的代码层面解决方案咨询

解决方案:通过Cognito Lambda Trigger补全缺失的姓氏属性

核心思路

利用Cognito的Pre Token Generation触发器,在谷歌SSO认证完成后、Cognito同步用户属性前,自动检查并补全缺失的姓氏(family_name)属性,用默认值绕过Cognito的必填校验,无需修改前端代码或Cognito面板设置。

具体实现步骤

  1. 创建Pre Token Generation Lambda函数
    编写Node.js代码,示例如下:

    exports.handler = async (event) => {
      const userAttributes = event.request.userAttributes;
      
      // 检查姓氏是否为空或缺失
      if (!userAttributes.family_name || userAttributes.family_name.trim() === '') {
        // 填充默认值,可根据需求改为"N/A"等占位符
        event.response.claimsOverrideDetails = {
          claimsToAddOrOverride: {
            family_name: ''
          }
        };
      }
      
      return event;
    };
    
  2. 关联Lambda到Cognito用户池

    • 进入AWS Cognito控制台,打开目标用户池
    • 切换到「触发器」标签页
    • 在「Pre Token Generation」下拉列表中选择刚创建的Lambda函数
    • 保存配置
  3. 验证效果
    使用无姓氏信息的谷歌账号发起SSO登录,Lambda会自动补全姓氏属性,Cognito将不再触发必填项错误。

补充说明

  • 前端原有代码(Auth.federatedSignIn调用及OAuth配置)无需修改
  • 默认值可根据业务场景调整,只要不为空即可通过Cognito校验
  • 触发器运行在AWS服务端,不会影响前端用户登录流程

内容的提问来源于stack exchange,提问作者Atharv Arolkar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:32:08