我应该在哪里存储 code_verifier(使用 PKCE 的 oauth 2.0 代码授权流程)

ela*_*eee 7 node.js oauth-2.0 reactjs oauth2orize pkce

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

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

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

我们正在遵循RFC6749

geo*_*rax 1

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

仅供参考:我主要致力于GraphQL API,并且我找到了一个很好的解决方案,也可以将GraphQL Server存储code_verifier在其中,例如Apollo Servercontext