首页 > 解决方案 > 我应该在哪里存储 code_verifier(使用 PKCE 的 oauth 2.0 代码授权流程)

问题描述

我目前正在 SSR 页面中使用 PKCE 进行 oauth 2.0 代码授权授权(在前面使用 React,在后面使用 Express)。

code_verifier当客户端请求授权服务器代码时我应该存储在哪里(当授权服务器创建 code_challenge 和 code_verifier 以验证后者时)。我的授权服务器在独立的堆栈/基础架构中运行。

我应该存储code_verifier在 req.headers 中吗?(参见坎贝尔 OAuth TBPKCE-00 草案

我们遵循RFC6749

标签: node.jsreactjsoauth-2.0pkceoauth2orize

解决方案


我建议您考虑将其存储在 中cookies,这是一种简单的方法,如果有人看到它也没什么大不了的。您可以使用Node.jscookie-parser的库,我个人非常喜欢并且几乎每天都在使用它,因为它提供了对开发人员友好的工具。

仅供参考:我主要研究GraphQLcode_verifier API,并且我找到了一个很好的解决方案来存储contextGraphQL Server,例如Apollo Server


推荐阅读