如何解码 AWS Cognito 发送的 "state" 请求参数?

How to decode "state" request parameter sent by AWS Cognito?

几个月前,我一直在使用 AWS Cognito 在向我的授权服务器请求 /authorize 时发送的 state 请求参数。我用它从 AWS Cognito 向我的授权服务器发送额外信息。当时的值为base64。今天我在尝试同样的事情,但我收到的值不是状态的 base64。 AWS 更改了 Cognito 还是我遗漏了什么?

经过一些调查,我发现 Cognito 以 STRING1.STRING2.STRING3 格式发送状态。 String1 编码为 base64url。从base64url解码STRING1后,原来是gzip二进制。解压缩结果状态。

以前,Cognito 使用 base64 编码对状态进行两次编码。显然,他们改变了逻辑。我没有找到说明这种情况的任何文档。