AWS Cognito 中的“访问令牌不包含 openid 范围”

Ere*_*z.S 4 amazon-web-services amazon-cognito

我正在前端应用程序上运行一个有效的 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 范围" }

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

提前致谢

小智 7

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


小智 5

我遇到了这个问题,这是我的错。我正在发送id_token而不是access_token令牌的属性。
我用 PHP 编程,所以我作为标头"Authorization: Bearer ".$token->id_token而不是"Authorization: Bearer ".$token->access_token. 现在可以了。

希望它对您或某人有帮助。