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

后端不使用Amplify时实现Cognito登录的AWS SDK库是什么?

不使用Amplify实现Cognito用户登录的AWS SDK方案

你不需要引入额外的AWS SDK库,直接使用你已经在使用的@aws-sdk/client-cognito-identity-provider包即可实现登录功能。

核心登录API说明

  • 用户名密码登录场景:调用InitiateAuth接口,传入AuthFlow参数为USER_PASSWORD_AUTH,同时传入ClientId、用户账号密码等参数即可完成登录认证,成功后会返回IdToken、AccessToken、RefreshToken等凭证。
  • 验证码/自定义认证流场景:同样使用InitiateAuth接口,根据你的Cognito用户池配置的认证流修改AuthFlow参数即可,支持的流包括CUSTOM_AUTH、USER_SRP_AUTH等。
  • 二次验证场景:如果认证过程需要MFA校验等二次验证步骤,可以调用RespondToAuthChallenge接口返回对应验证信息完成登录流程。

基础登录代码示例

import { CognitoIdentityProviderClient, InitiateAuthCommand } from "@aws-sdk/client-cognito-identity-provider";

// 初始化Cognito客户端
const client = new CognitoIdentityProviderClient({ region: "你的AWS区域" });

const login = async (username, password) => {
  const command = new InitiateAuthCommand({
    AuthFlow: "USER_PASSWORD_AUTH",
    ClientId: "你的Cognito用户池客户端ID",
    AuthParameters: {
      USERNAME: username,
      PASSWORD: password
    }
  });

  const response = await client.send(command);
  // 登录凭证存储在response.AuthenticationResult中
  return response.AuthenticationResult;
};

注意事项

  • 提前在Cognito用户池的客户端配置中开启你要使用的认证流(比如USER_PASSWORD_AUTH),否则调用接口会报错。
  • 后端场景调用时默认不需要配置客户端密钥,如果你在创建用户池客户端时勾选了生成客户端密钥,需要在请求的AuthParameters中额外增加SECRET_HASH参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:30:05