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

无法使用原生JS调用AWS Cognito,提示AmazonCognitoIdentity未定义

解决「AmazonCognitoIdentity is not defined」错误

这个报错本质是全局的AmazonCognitoIdentity对象没被正确加载,大概率是脚本引入的方式、顺序或者文件本身出了问题,我来帮你一步步修复:

1. 替换正确的SDK文件

你当前引入的aws-cognito-sdk.js是旧版SDK,和你参考的amazon-cognito-identity-js包不匹配。需要换成该包对应的UMD版本文件:

  • 如果用本地文件:从amazon-cognito-identity-js包的dist目录里取出amazon-cognito-identity.min.js放到你的项目静态资源中
  • 如果用CDN:可以直接用公开的CDN链接(比如unpkg的稳定版本)

2. 调整脚本加载顺序

amazon-cognito-identity-js依赖AWS SDK的核心模块,必须先加载AWS SDK,再加载cognito的SDK,否则会出现依赖缺失的问题。

修正后的完整HTML示例

<html>
<head>
    <title>Testing AWS Cognito</title>
    <!-- 先加载AWS SDK -->
    <script src="https://sdk.amazonaws.com/js/aws-sdk-2.211.1.min.js"></script>
    <!-- 再加载amazon-cognito-identity-js的UMD版本 -->
    <!-- 本地文件请替换成你的实际路径 -->
    <script src="https://unpkg.com/amazon-cognito-identity-js@6.3.1/dist/amazon-cognito-identity.min.js"></script>
</head>
<body>
    <div>
        <input type="text" id="email" name="email" placeholder="email">
        <br/>
        <input type="password" id="password" name="password" placeholder="password">
        <br/>
        <button onclick="handleSignUp()">Sign Up</button>
    </div>

    <script>
        // 现在可以正常访问AmazonCognitoIdentity全局对象了
        function handleSignUp() {
            const email = document.getElementById('email').value;
            const password = document.getElementById('password').value;

            // 替换成你的Cognito用户池ID和客户端ID
            const poolData = {
                UserPoolId: 'us-east-1_xxxxxxxxx',
                ClientId: 'xxxxxxxxxxxxxxxxxxxxxxxxxx'
            };

            const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
            const userAttrs = [
                new AmazonCognitoIdentity.CognitoUserAttribute({
                    Name: 'email',
                    Value: email
                })
            ];

            userPool.signUp(email, password, userAttrs, null, (err, result) => {
                if (err) {
                    alert(err.message || JSON.stringify(err));
                    return;
                }
                console.log('注册成功,用户名:', result.user.getUsername());
            });
        }
    </script>
</body>
</html>

额外排查点

  • 打开浏览器开发者工具(F12)的「网络」标签,确认所有脚本都成功加载(没有404错误)
  • 如果是npm安装的包,确保已将node_modules/amazon-cognito-identity-js/dist/amazon-cognito-identity.min.js复制到项目静态资源目录,路径配置正确
  • 尽量保持AWS SDK和amazon-cognito-identity-js版本兼容,避免跨版本冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:50:48