首页 > 解决方案 > AWS Cognito 中的“访问令牌不包含 openid 范围”

问题描述

我正在一个前端应用程序上运行一个有效的 AWS Cognito 服务,它可以成功地完成基本的工作——登录、注销、注册等。

现在我正在尝试通过后端 API 获取用户属性,例如:

1) 用户登录应用程序并获得一个 JWT。

2) JWT 被发送到后端服务器。

3)服务器必须使用访问令牌提取用户的电子邮件

我发现最接近我需要的是这个Cognito 服务。

因此,我正在向“ https://mydomain.auth.eu-central-1.amazoncognito.com/oauth2/userInfo ”发出GET请求,并按照他们的要求使用授权标头,但我不断收到以下回复:

{ "error": "invalid_token", "error_description": "访问令牌不包含 openid 范围" }

我已尝试搜索此错误,但找不到有关该错误的任何解释。

提前致谢

标签: amazon-web-servicesamazon-cognito

解决方案


Erez,您使用的是自定义 UI 吗?因为自定义 UI 使用与 OAuth2 完全分离的流程(USER_SRP_AUTH、USER_PASSWORD_AUTH)。随这些流发布的令牌不符合 OpenID Connect(基本上它们不包含 openid 范围),因此您不能使用它们来收集用户信息(因为 userinfo 端点符合 OpenID Connect 并且需要使用符合以下条件的 jwts 来调用) OIDC 标准)。我们也在为此苦苦挣扎,对不起。


推荐阅读