Oauth 2.0 OAuth 2:状态是否应该过期?

Oauth 2.0 OAuth 2:状态是否应该过期?,oauth-2.0,Oauth 2.0,对于使用OAuth协议的状态参数的服务,客户端可以在procotol的步骤1和步骤3之间维护状态: 用户从客户端重定向到状态为的服务 用户对作用域的同意 使用授权代码和状态将用户重定向回客户端 是否有充分的理由设置步骤1和步骤3之间的最大延迟?具体来说,可以通过将过期日期设置为状态来实现。OAuth 2流应该相当快地完成似乎是合理的(例如,在步骤1之后一年到达步骤3会非常奇怪),因此我尝试在状态中添加大约1天的过期日期。是否有任何安全或功能方面的最佳实践?如果否,是否存在使状态过期的明显缺点?首

对于使用OAuth协议的
状态
参数的服务,客户端可以在procotol的步骤1和步骤3之间维护状态:

  • 用户从客户端重定向到状态为
    的服务
  • 用户对作用域的同意
  • 使用授权代码和
    状态将用户重定向回客户端

  • 是否有充分的理由设置步骤1和步骤3之间的最大延迟?具体来说,可以通过将过期日期设置为
    状态
    来实现。OAuth 2流应该相当快地完成似乎是合理的(例如,在步骤1之后一年到达步骤3会非常奇怪),因此我尝试在
    状态中添加大约1天的过期日期。是否有任何安全或功能方面的最佳实践?如果否,是否存在使状态过期的明显缺点?

    首先,
    状态是授权请求中的建议参数,而不是必需参数。因此,它可能根本不包括在内

    state
    参数是一个不透明的值,客户端使用它来维护请求和回调之间的状态。建议使用此参数来防止CSRF攻击,请参阅

    我从来没有见过州政府设定的有效期。用户可以导航到客户端,重定向到授权服务器,并在登录屏幕上休眠机器。当用户唤醒机器时,他们可以完成登录并重定向回客户端。如果客户仍然知道该州的情况,我不明白为什么会失败,即使是几天后

    另一方面,颁发的授权代码的生命周期是有限的。一旦发布,应在几分钟内使用,并且只能使用一次