我目前正在使用SSR页面中的PKCE实现oauth 2.0代码授权授予(在前面使用React,在后面使用Express)。
我有一个问题。当客户端请求授权服务器代码时(授权服务器创建code_challenge和code_verifier进行验证时),我应该在哪里存储code_verifier。我有在独立堆栈/基础结构中运行的授权服务器。
我应该将code_verifier存储在req.headers中吗? (请参见下文)。
https://tools.ietf.org/html/draft-campbell-oauth-tbpkce-00
我们正在遵循这些RFC
https://tools.ietf.org/html/rfc6749
最诚挚的问候。
答案 0 :(得分:1)
我建议您考虑将其存储在cookies
中,这是一种简单的方法,如果有人看到它并不是什么大不了的事情。您可以将cookie-parser
库用于 Node.js ,我个人非常喜欢并几乎每天都在使用它,因为它提供了开发人员友好工具。
FYI::我主要研究 GraphQL API,并且找到了一种很好的解决方案,也可以将code_verifier
存储在context
中GraphQL服务器的名称,例如 Apollo服务器。