1개 답변
- 최신
- 최다 투표
- 가장 많은 댓글
0
【以下的回答经过翻译处理】 根据问题的描述,我了解到您正在利用PKCE扩展来保护从您的Cognito域的oauth2/token端点检索token时的授权代码交换。但在这样做的过程中,您遇到了400系列HTTP错误代码,即“Invalid_Grant”和“Invalid Request” 。
发表此答案时,我看到您已经解决了这个问题。对于将来遇到此问题的其他开发人员,我在下面粘贴了通常与上述设置遇到的常见问题(不考虑PKCE扩展/流)的通用问题。
将PKCE扩展/流设置到一边,当您访问Cognito用户池域的/oauth2/token端点并遇到错误消息“invalid_request”时,表示标题/正文中的一个或多个请求参数不正确或缺失。现在,如果重新尝试请求(同时保持“code”请求参数不变),则会遇到“invalid_grant”错误消息,这是可以预期的。授权代码一旦被使用,就不能再次使用。此外,授权代码必须在生成后的5分钟内由token endpoint使用。
在将PKCE扩展引入上述混合时,如果代码验证程序和代码挑战不匹配,则会出现“invalid_request”和“invalid_grant”的相同错误序列。根据RFC标准,代码挑战是从代码验证器字符串以以下方式派生的。
明文 code_challenge = code_verifier
S256 code_challenge = BASE64URL-ENCODE(SHA256(ASCII(code_verifier)))
在上述情况下,只要请求参数'client_id','redirect_uri'和'Authorization'标头(如果您的应用程序客户端具有客户机密)正确,那么此问题的两个
관련 콘텐츠
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 8달 전