RFC 7636 (PKCE) 中的错误响应和兼容性不匹配

如何解决RFC 7636 (PKCE) 中的错误响应和兼容性不匹配

我正在努力实施 Oidc PKCE 流程。通过 RFC 7636,我对错误响应 4.4.1 下提到的细节有疑问。和第 5 节中的兼容性。

对于错误响应,它指出 如果服务器需要 OAuth 的代码交换证明密钥 (PKCE) 公共客户端和客户端不发送“code_challenge” 请求,授权端点必须返回授权 “error”值设置为“invalid_request”的错误响应。这 “error_description”或“error_uri”的响应应该解释 错误的性质,例如需要代码验证。

如果支持 PKCE 的服务器不支持请求的 转换,授权端点必须返回 “错误”值设置为的授权错误响应 “无效的请求”。 “error_description”或响应 “error_uri”应该解释错误的性质,例如,转换 不支持算法。

对于兼容性,它声明

本规范的服务器实现可以接受 OAuth2.0 未实现此扩展的客户端。如果“code_verifier” 未在授权请求中从客户端收到,服务器 支持向后兼容性恢复到 OAuth 2.0 [RFC6749] 没有这个扩展的协议。

由于 OAuth 2.0 [RFC6749] 服务器响应没有改变 规范,本规范的客户端实现不 需要知道服务器是否已经实现了这个规范 并且应该将第 4 节中定义的附加参数发送到 所有服务器。

那么我们是否需要添加检查来验证 code_verifier 是否存在?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?