来自https://stackoverflow.com/a/7209263/1225328:
刷新令牌的想法是,如果访问令牌被泄露,因为它是短暂的,攻击者有一个有限的窗口来滥用它。
我明白了,但是如果攻击者访问刷新令牌,他们将能够获得一个新的身份验证令牌,我错了吗?这似乎只是推迟了长期存在的令牌安全漏洞......
关于这一点,您会在相同的答案中找到:
刷新令牌,如果被泄露,将毫无用处,因为攻击者除了刷新令牌之外还需要客户端 ID 和密码才能获得访问令牌。
那么使用刷新令牌和简单地辞职有什么区别呢?如果您不希望用户再次重新输入它们,您如何存储客户端 ID 和密码?
正如@FStephenQ指出的那样,刷新令牌只能使用一次:然后攻击者将能够获得新的身份验证令牌,但只能使用一次,而且是短暂的。但是,一旦你已经使用了一个新的刷新令牌,你如何获得它呢?如果您在使用一个时获得了一个新的,那么攻击者也将能够刷新他们的令牌......
实际的问题是:如何让我的用户保持登录状态?在我使用的应用程序上,一旦我登录,我就不必再次登录:它们如何进行?