使用AWS Cognito带prompt=none的授权码流为何未返回login_required?
AWS Cognito静默登录未返回
error=login_required问题 已完成配置
- 授权流程:Authorization Code Grant(授权码流)
- 域名与重定向URI:配置正确,与Cognito应用客户端设置一致
- 登录流程:使用
prompt=none尝试静默登录 - 应用客户端:采用Hosted UI(托管登录配置)
问题描述
当用户未登录或会话过期时,根据OIDC规范,预期Cognito授权服务器会返回包含error=login_required参数的重定向响应,但实际未返回该参数,而是直接将用户重定向至登录页面。
已排查内容
Cognito应用客户端已完成以下配置:
- 启用授权码授予流程
- 正确设置Hosted UI域名
- 允许的回调URL已设置为目标
redirect_uri - 请求中的域名和
redirect_uri与应用客户端配置完全匹配
求助需求
为何在使用prompt=none进行静默登录且无有效会话时,AWS Cognito未在重定向URL中返回error=login_required?这是已知限制还是我的配置存在问题?
静默登录URL构建代码
const silentLogin = `${this.domain}/oauth2/authorize?` + `response_type=code&client_id=${this.clientId}&` + `redirect_uri=${encodeURIComponent(this.redirectUri)}&` + `scope=${this.authScope}&prompt=none`; window.location.href = silentLogin;
内容的提问来源于stack exchange,提问作者Lovitha
相关产品推荐
相关产品推荐

