Oauth 状态存储

问题描述 投票:0回答:1

我想实现 OAuth 授权代码流程。我在存储状态时遇到问题。我正在实现身份验证服务器、资源服务器和客户端。 我所知道的是,当客户端执行重定向到身份验证服务器的登录表单时,它也应该发送状态。 所以我的身份验证服务器获取“状态”并发送回登录 html 页面。 现在,在成功验证用户的凭据后,身份验证服务器应将用户代理重定向到请求中给定的redirect_uri,并在登录页面的请求中提供客户端给出的“状态”。

  1. 我的身份验证服务器如何知道哪个“状态”应该返回给哪个客户端?因为我在第一次请求后从客户端获得了“状态”,然后我返回了 html 登录页面。然后用户使用其凭据提交此表单,然后发生重定向。那么我如何存储“状态”来匹配。请求和凭证提交之间的“状态”在哪里?我如何存储它以便稍后我知道它应该返回到特定的redirect_uri?
oauth state openid-connect
1个回答
1
投票

您应该将在初始身份验证请求中收到的相同状态值返回给客户端。

例如,您可以将初始状态值存储在每个用户的会话 cookie 中;通过使用这种技术,您可以跟踪状态。

我最近在博客上讨论了这个主题:

© www.soinside.com 2019 - 2024. All rights reserved.