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

如何调用Cognito接口通过验证码完成注册用户邮箱验证及账户激活

Cognito前端自助邮箱验证&账户激活实现方案

你需要调用Cognito Identity SDK内置的confirmSignUp方法完成验证码校验和账户激活,全程前端即可操作,无需后台介入。

具体代码实现

基于你现有的UserPool初始化逻辑,新增验证码确认方法即可:

const confirmSignup = (event) => {
  event.preventDefault();
  // username需和注册时传入的参数保持一致,verificationCode为用户输入的邮箱验证码
  const username = sessionStorage.getItem('signupUsername');
  const verificationCode = document.getElementById('verification-code').value;

  UserPool.confirmSignUp(username, verificationCode, {}, (err, data) => {
    if (err) {
      // 可根据err.code返回对应提示,常见错误码:CodeMismatch(验证码错误)、ExpiredCode(验证码过期)
      console.error('验证失败', err);
      return;
    }
    // 验证成功后账户自动激活,可直接跳转登录或触发自动登录逻辑
    console.log('账户激活成功', data);
  });
};

可选补充:验证码重发逻辑

如果用户未收到验证码,可调用resendConfirmationCode方法重发:

const resendVerificationCode = () => {
  const username = sessionStorage.getItem('signupUsername');
  UserPool.resendConfirmationCode(username, (err, data) => {
    if (err) {
      console.error('验证码重发失败', err);
      return;
    }
    console.log('验证码已重新发送至邮箱', data);
  });
};

注意事项

  • 注册完成后建议把用户名存入sessionStorage等临时存储,验证时直接取用,无需用户重复输入
  • 需提前确认Cognito用户池配置未开启管理员强制确认:进入用户池控制台→属性→注册验证,取消勾选「让管理员手动确认创建的用户」,否则即便前端验证通过也无法自动激活账户
  • 如果你开启了大小写敏感的用户名配置,要确保注册和验证时传入的username大小写完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:24:10