【发布时间】:2019-04-26 22:55:23
【问题描述】:
使用 AWSMibileHub 设置我的后端。在管理页面上工作,该页面显示来自 AWS Cognito 的所有用户。
我正在使用ListUsers 获取用户列表,并注意到带有 PagenationToken 的请求出现 502 错误,而且它似乎是随机发生的。
在 CloudWatch 中显示以下错误。
InvalidParameterException: 1 validation error detected: Value 'CAISlAIIARLtAQgDEugBADSdLB5dZXQEaQjoL8y8CE1RGGT3PZ4FpCqxFwJkNuhIeyJAbiI6IlBhZ2luYXRpb25Db250aW51YXRpb25EVE8iLCJuZXh0S2V5IjoiQUFBQUFBQUFCZHM4QVFFQmJBZmU5OFgzUnJTM1BHcnYzVmRiVWNScVdIck82VXFZaTdlZklleVRCSEZsYm1ZN01UVTRPV1k0TVRNdE9UYzVZUzAwWTJKakxUazROekl0TkdRek9UYzROMlpoWmpVM093PT0iLCJwcmV2aW91c1JlcXVlc3RUaW1lIjoxNTQzMDkzODIyNDk5fRogNk7FThSKBOuwQGi DoZBnmNN85UY5oFiSAbHWfOzreY=' at 'paginationToken' failed to satisfy constraint: Member must satisfy regular expression pattern: [\S]+
有没有人有同样的问题或知道如何解决这个问题?
【问题讨论】:
-
你在哪里看到这个 502?在后端代码的日志中,还是在您正在查看此管理页面的浏览器中?你能收集伴随 502 的响应头吗?
-
@Michael-sqlbot 我从浏览器的前端看到它。还更新了来自 CloudWatch 的错误消息。
-
我看到的违规接近于令牌
wQGi<<here>>DoZBnmNN85UY5oFiSAbHWfOzreY=的末尾处,不应存在空格字符。我怀疑您有一个包含+符号的令牌,并且在将它从前端传递到后端时,您不会以某种方式将其作为%2B进行url 转义,因此它变成了一个空格。您是否熟悉 url-escaping(又名 url-encoding)的工作原理,以及为什么+符号需要特殊处理? -
@Michael-sqlbot 谢谢你的回答。我不熟悉它,但现在可以做一些研究:)
-
您在那里所做的最终结果只是
.replace(/\ /g,'+')(将空间改回+),它涵盖了流程中早期的错误,所以即使它有效,它也不是真正的正确解决方案。如果没有更多地了解您的设计方式,我建议您构建一个包含在前端单击的令牌的链接。您需要在 将其写入 HTML 之前对该值进行编码。
标签: aws-lambda aws-api-gateway amazon-cognito aws-amplify