Api 刷新令牌请求是否返回新的刷新令牌?

Api 刷新令牌请求是否返回新的刷新令牌?,api,asp.net-web-api,oauth-2.0,google-oauth,Api,Asp.net Web Api,Oauth 2.0,Google Oauth,我在自己的Web API和ASP.NET C#上使用Oauth2在Web应用程序上使用该API。在我的web应用程序上,我正在进行HttpWebRequests。当我的访问令牌到期时,我调用一个方法“RefreshToken”,该方法请求获取一个新的访问令牌。除了我得到的响应包含一个新的刷新令牌之外,它工作得很好,没有任何问题???我只是在期待新的访问令牌。我甚至认为如果不再次传递凭据,这是不可能的,但是我的grant\u type=refresh\u令牌不知怎么地生成了一个新的刷新令牌,这让我

我在自己的Web API和ASP.NET C#上使用Oauth2在Web应用程序上使用该API。在我的web应用程序上,我正在进行HttpWebRequests。当我的访问令牌到期时,我调用一个方法“RefreshToken”,该方法请求获取一个新的访问令牌。除了我得到的响应包含一个新的刷新令牌之外,它工作得很好,没有任何问题???我只是在期待新的访问令牌。我甚至认为如果不再次传递凭据,这是不可能的,但是我的grant\u type=refresh\u令牌不知怎么地生成了一个新的刷新令牌,这让我很担心。

请看Taiseer Joudeh的文章(顺便说一句,这是一系列惊人的文章)

您将在SimpleRefreshTokenProvider的CreateAsync方法中发现,将删除并重新创建刷新令牌,从而提供“滑动过期”。如果不希望每次都有新的刷新令牌,请不要删除/重新创建

下面是我要说的一行代码:

var result = await tokenRepository.AddRefreshToken(token);
AddRefreshToken实际删除并重新创建令牌,如下所示:

public async Task<bool> AddRefreshToken(AspNetRefreshToken token)
{
    var existingToken = _context.AspNetRefreshTokens.SingleOrDefault(r => r.Subject == token.Subject && r.ClientId == token.ClientId);

    if (existingToken != null)
    {
        await RemoveRefreshToken(existingToken);
    }

    _context.AspNetRefreshTokens.Add(token);

    return await _context.SaveChangesAsync() > 0;
}
public异步任务AddRefreshToken(AspNetRefreshToken令牌)
{
var existingToken=\u context.aspnetrefreshttokens.SingleOrDefault(r=>r.Subject==token.Subject&&r.ClientId==token.ClientId);
if(existingToken!=null)
{
等待删除刷新令牌(existingToken);
}
_AspNetRefreshTokens.Add(token);
return wait_context.SaveChangesAsync()>0;
}

同样,在没有看到您的代码的情况下,我会说它按预期工作。如果您不希望滑动过期,请不要让提供商每次都重新创建刷新令牌。

My grant\u type=password和grant\u type=refresh\u令牌响应都是这样的:您有吗?