我正在使用 PKCE 为我的 CLI 应用程序实现授权码授予流程 https://datatracker.ietf.org/doc/html/rfc8252#section-8.1
我从 CLI 启动了一个环回服务器来等待来自我的身份验证服务器的授权码:
$ mytool login
$ please visit: mysitethattalkstomyauthserver.com?local_port=65200
$ … awaiting auth code …
它运行正常,但我对代码验证器有疑问。我想让我的用户只需单击上面的 URL,然后让我的网站处理对身份验证代码的初始请求。但我需要初始请求中的代码验证器哈希。我应该从客户端 CLI 工具而不是我的网站生成它。
那么,我是否需要将该哈希值粘贴到用户点击的原始 URL 中?
$ please visit site.com?port=65200&challenge=<hash>
现在我有一个只有站点调用的实现
localhost:65200/code_challenge
并且 cli 提供了它生成的代码哈希。但这安全吗?需要额外执行调用本地环回服务器这一步骤来获取代码质询吗?
这里的目的是让用户点击的 URL 尽可能简单易读