我在短时间内多次使用刷新令牌进行测试,但我不知道,Google刷新令牌会过期吗?或者我可以调用相同的刷新令牌以在很长一段时间(一周甚至几个月)内反复获取另一个访问令牌?
我正在使用 Doorkeeper 5.2.1 并且我已经查阅了有关刷新令牌的Doorkeeper 文档,并阅读了几个与刷新令牌相关的 GitHub 问题和拉取请求,特别是这里和这里。
根据我从这些对话和阅读规范(以及引用规范的文档和帖子)中收集到的信息,以下陈述是正确的:
但是,我很困惑,基于这个 pull request,它在“成功使用一次使用该刷新令牌创建的访问令牌后实现刷新令牌到期”。Doorkeeper 如何知道我是否已成功使用该访问令牌发出 API 请求?是我的 API 根据该访问令牌计算授权逻辑。Doorkeeper 不知道我的 API 请求是否成功。但是,我已经将其解释为如果resource_owner_authenticator块返回用户,则可能构成成功使用。但是我还没有发现刷新令牌成功过期。(请参阅下面的我的规格。)
从阅读此规范文件中还可以看出,如果您成功使用刷新令牌,它会撤销之前的刷新令牌,这是有道理的。
不过,我正在尝试在我的规范文件中解决所有这些问题,但我遇到了一个问题,即刷新令牌似乎没有被撤销,即使它被多次使用,或者它(“刷新令牌A")在与刷新令牌 A 用于生成的访问令牌一起返回的刷新令牌(“令牌 B”)也被使用之后被重用。我的规范文件将使这一点更清楚:
describe 'OAuth flow' do
# ...
describe 'refresh tokens' do
# ...
context 'when attempting reuse of a refresh token' do
before do
redirect_uri = 'https://localhost:3002'
# …Run Code Online (Sandbox Code Playgroud)