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

能否在AWS Cognito允许的回调URL中使用占位符变量?

AWS Cognito回调URL使用变量的实现方案

AWS Cognito用户池的允许回调URL不支持直接使用占位符变量(比如你尝试的${slug}写法),Cognito会将整个字符串视为固定URL进行校验,因此API Gateway的阶段变量符号在这里无法生效。以下是几种可行的替代方案:

1. 预注册所有可能的回调URL

如果slug的取值范围有限且可提前预知,直接将所有完整的回调URL(如https://some-domain/slug1/loginOauth、https://some-domain/slug2/loginOauth)添加到Cognito应用客户端的允许回调URL列表中。这种方式简单直接,但仅适用于slug数量少、变动不频繁的场景。

2. 通用回调URL + 内部转发

注册一个统一的回调URL(如https://some-domain/callback),通过该端点完成二次转发:

  • 在发起Cognito认证请求时,将slug信息编码到state参数中(需做好签名校验,防止篡改)
  • 用户完成认证后,Cognito会重定向到该通用回调URL,同时携带state参数
  • 在通用回调端点解析state中的slug,再将用户重定向到对应的https://some-domain/${slug}/loginOauth地址

3. 动态更新回调URL列表

通过AWS SDK或CLI编写自动化脚本,在slug新增/变更时,自动更新Cognito应用客户端的允许回调URL列表。示例AWS CLI命令如下:

aws cognito-idp update-user-pool-client \
  --user-pool-id YOUR_USER_POOL_ID \
  --client-id YOUR_CLIENT_ID \
  --callback-urls '["https://some-domain/slug1/loginOauth", "https://some-domain/slug2/loginOauth"]'

这种方案适合slug动态变化的场景,但需为执行脚本的角色分配cognito-idp:UpdateUserPoolClient权限,同时注意避免并发更新的冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 20:20:36