我目前正在开发一个允许“授权码授予”的 Oauth 授权服务器,我想使用 PKCE,因为我已经看到它可能在 Oauth2.1 中,而且它似乎(有点)比经典的“授权码”更安全.
我还在开发一个使用 Vue.js 作为我的 Oauth 客户端的 SPA 应用程序。
我完成了 PKCE 的第一步:在客户端生成代码验证器和代码质询,并发送包含 client_id、response_type=code、redirect_uri、code_challenge 和 code_challenge_request 的 GET /authorize 请求。
我的“GET /authorize”请求返回客户端浏览器将遵循的 302 重定向代码。在这一步,由于重定向,我失去了客户端的上下文,因此我失去了在“POST /token”请求期间流程结束时需要的 code_verifier。
所以我不明白如何在 SPA 中使用 PKCE 流,我在互联网上没有发现任何相关内容,RFC 只是说“遵循重定向”和“使用代码验证器”,我不知道该怎么做那。
我想我可以将此 code_verifier 存储在不安全的 cookie 中,但我希望有更好的解决方案。