Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oauth 2.0 誓言2.0代币为何过期?_Oauth 2.0 - Fatal编程技术网

Oauth 2.0 誓言2.0代币为何过期?

Oauth 2.0 誓言2.0代币为何过期?,oauth-2.0,Oauth 2.0,我正在我的服务器上创建一个誓言2.0系统,允许用户从应用程序登录到我服务器上的帐户,而无需向应用程序本身提供用户名和密码。据我所知,这是誓言的目的,它似乎工作得很好,该系统是建立在遵守所有誓言2.0规范的基础上的,功能齐全。但我不明白的是为什么我必须让代币过期。。。我的意思是,我提供了一个刷新uri,他们可以随时轻松地免费更新令牌(或获得一个新的有效令牌)。我看不出这有什么用,为什么不让代币永不过期呢。我看不到令牌过期的安全好处或任何目的。有人能给我解释一下为什么我的代币要过期,为什么它们不能无

我正在我的服务器上创建一个誓言2.0系统,允许用户从应用程序登录到我服务器上的帐户,而无需向应用程序本身提供用户名和密码。据我所知,这是誓言的目的,它似乎工作得很好,该系统是建立在遵守所有誓言2.0规范的基础上的,功能齐全。但我不明白的是为什么我必须让代币过期。。。我的意思是,我提供了一个刷新uri,他们可以随时轻松地免费更新令牌(或获得一个新的有效令牌)。我看不出这有什么用,为什么不让代币永不过期呢。我看不到令牌过期的安全好处或任何目的。有人能给我解释一下为什么我的代币要过期,为什么它们不能无限期地好起来?

一句话,为了更安全

在您的问题中,您说过免费续订令牌,实际上,当您刷新令牌时,您需要向授权服务器进行身份验证(提供您的客户端凭据)。所以刷新令牌和访问令牌不相等。它不能给您访问资源的权限

代币为什么过期了

正如上面所说:

3.1.2。有限访问令牌生存期

协议参数“expires_in”允许授权服务器 (根据其政策或代表最终用户)限制 访问令牌的生存期,并将此信息传递给 客户此机制可用于向用户颁发短期令牌 授权服务器认为不太安全的OAuth客户端,或 通过非安全通道发送令牌。

5.1.5.2。确定到期时间

代币通常应在合理期限后到期这个 补充和加强其他安全措施(如 签名)并减少各种令牌泄漏的影响。 根据与令牌泄漏相关的风险,令牌可能会泄漏 几分钟后过期(例如,用于支付交易)或停留 有效时间为小时(例如,对联系人的读取权限)


我找到了它的另一个用途。当我在每次登录时在数据库中存储令牌时。如果某人因任何原因不再使用设备或删除其令牌(卸载应用程序或清除缓存),而未正确“注销”(注销会将其从数据库中删除)。然后,数据库中存储了一个永远不会再使用的令牌。过了一段时间,这会变得很麻烦,占用数据库上宝贵的空间,并减慢对未使用令牌的查询执行。使用令牌过期,我可以每隔15分钟左右运行一个cron作业来扫描数据库中过期的令牌,并将其删除。必须刷新令牌确实给服务器和客户机带来了一些压力,但不如有数百万未使用的令牌那么大