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

如何合并Amazon Cognito认证与资源服务器API请求以优化加载速度?

能否合并Cognito认证令牌请求与资源服务器用户详情请求?

我的应用启动时需要执行两步API调用:

  1. 向Amazon Cognito服务器请求认证令牌
  2. 使用获取到的令牌向资源服务器请求用户详情

希望合并这两个请求以缩短应用加载时长,两个请求的具体信息如下:

Cognito认证请求

POST https://cognito-idp.us-west-1.amazonaws.com/
Content-Type: application/json

{
   "AuthParameters" : {
      "USERNAME" : "...",
      "PASSWORD" : "..."
   },
   "AuthFlow" : "USER_PASSWORD_AUTH",
   "ClientId" : "..."
}

资源服务器用户详情请求

GET {{base_url}}/user/flag
Authorization: Bearer <auth-token>

可行的合并方案

1. 借助Cognito预令牌生成Lambda触发器

Cognito的Pre Token Generation Lambda触发器会在生成ID令牌和访问令牌前触发。可以在这个Lambda里调用资源服务器获取用户详情,然后将这些信息嵌入到Cognito返回的令牌(比如ID Token的自定义字段)中。这样一次Cognito认证请求就能同时拿到令牌和用户详情,无需再单独调用资源服务器。

注意事项:

  • 令牌自定义字段有大小限制,避免嵌入过大的数据;
  • Lambda调用资源服务器的延迟会叠加到Cognito认证请求的耗时中,需要评估是否在可接受范围内。

2. 改造资源服务器接口

修改资源服务器的/user/flag接口,让它直接接收用户名和密码。接口内部先调用Cognito完成认证获取令牌,再查询用户详情,最后将令牌和用户详情一并返回给前端。这样前端只需调用这一个接口就能获取所有所需数据。

注意事项:

  • 资源服务器需要存储Cognito客户端信息(如ClientId);
  • 要妥善处理认证失败的场景;
  • 前端传输用户名密码时必须使用HTTPS加密,确保数据安全。

3. 并行请求优化(非严格合并)

如果上述两种改造方案不可行,可以尝试并行请求优化:在前端发起Cognito认证请求的同时,提前与资源服务器建立连接,一旦拿到认证令牌,立刻发送带令牌的用户详情请求。这种方式本质还是两次请求,但能减少连接建立的耗时,相比串行请求缩短总加载时间。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:52:11