我目前正在尝试使用Serverless框架在API Gateway + Lambda上实现Express应用程序。在我们的端口引入请求签名之前,一切都按预期工作。签名的方式是使用秘密令牌对包括查询字符串的完整URL进行签名。不幸的是,似乎API Gateway或Cloudfront会重新按字母顺序排列查询字符串,这导致我们端口生成的校验和与客户端生成的校验和不同。
我们的Express服务器看到的内容是:
有什么想法吗?
我们的Express服务器看到的内容是:
https://example.com/endpoint?build_number=1&platform=ios
而客户端发送的内容是:
https://example.com/endpoint?platform=ios &build_number=1
可以看到,查询参数被重新按字母顺序排列,这不是我所希望的行为。有什么想法吗?