关于RFC 7636(OAuth PKCE)中code_verifier参数描述的准确性疑问
关于RFC 7636兼容性章节的解读
核心结论
你的理解完全正确,RFC 7636第5节的兼容性描述确实存在不准确的问题。
具体分析
按照RFC 7636的协议流程(第1.1节):
- 授权请求阶段:客户端需要传递的是
code_challenge和可选的code_challenge_method,code_verifier从不会出现在这个阶段的请求里。 - 访问令牌请求阶段:客户端才需要提交
code_verifier,用于和之前的code_challenge做验证匹配。
- 授权请求阶段:客户端需要传递的是
第5节里提到的“授权请求中未收到code_verifier”属于明显的表述错误,正确的逻辑应该是:如果服务器在授权请求中未收到
code_challenge,则回退到标准OAuth 2.0(RFC6749)流程,不启用PKCE扩展。
补充说明
这种表述错误属于RFC文档里的笔误,实际实现中所有兼容PKCE的服务器都是基于“检查授权请求中的code_challenge”来决定是否启用扩展的,不会去在授权请求里查找code_verifier——毕竟这个字段根本不属于授权请求的参数范围。
内容的提问来源于stack exchange,提问作者Developer
相关产品推荐
相关产品推荐

