我想实现 OAuth 授权代码流程。我在存储状态时遇到问题。我正在实现身份验证服务器、资源服务器和客户端。 我所知道的是,当客户端执行重定向到身份验证服务器的登录表单时,它也应该发送状态。 所以我的身份验证服务器获取“状态”并发送回登录 html 页面。 现在,在成功验证用户的凭据后,身份验证服务器应将用户代理重定向到请求中给定的redirect_uri,并在登录页面的请求中提供客户端给出的“状态”。
您应该将在初始身份验证请求中收到的相同状态值返回给客户端。
例如,您可以将初始状态值存储在每个用户的会话 cookie 中;通过使用这种技术,您可以跟踪状态。
我最近在博客上讨论了这个主题: