Oauth 2.0 用于csrf保护的OAuth 2.0状态参数
我对授权码授权流程有一些疑问。 我知道oauth2的第一部分是发送Oauth 2.0 用于csrf保护的OAuth 2.0状态参数,oauth-2.0,authorization,csrf,csrf-token,Oauth 2.0,Authorization,Csrf,Csrf Token,我对授权码授权流程有一些疑问。 我知道oauth2的第一部分是发送https://auth.server/oauth2/auth?scope= &重定向\u uri=https://app.example.com/oauth2/callback &响应类型=代码和客户id=123和状态=af0ifjsldkj 我对状态参数感到困惑。我知道状态参数是为了防止csrf的攻击。但是我应该在哪里保存这个参数呢?如果将其保存到auth server的会话中,如何在以下步骤中验证状态 https://app
https://auth.server/oauth2/auth?scope= &重定向\u uri=https://app.example.com/oauth2/callback &响应类型=代码和客户id=123和状态=af0ifjsldkj
我对状态参数感到困惑。我知道状态参数是为了防止csrf的攻击。但是我应该在哪里保存这个参数呢?如果将其保存到auth server的会话中,如何在以下步骤中验证状态
https://app.example.com/oauth2/callback?
code=MsCeLvIaQm6bTrgtp7&state=af0ifjsldkj
如何验证app.example.com中的状态参数,但状态参数保存在auth server的会话中?您的技术堆栈的安全库应该为您管理此功能,并且状态将保存在您的应用程序中:
- 对于单页应用程序,通常将状态保存到本地存储
- 对于服务器端web应用程序,通常使用仅限HTTP的临时cookie