首页 文章

刷新令牌请求返回新的刷新令牌?

提问于
浏览
1

我在自己的Web API和ASP.NET C#上使用Oauth2来在Web应用程序上使用该API . 在我的网络应用程序上,我正在制作HttpWebRequests . 当我的访问令牌到期时,我正在调用一个方法“RefreshToken”,该方法请求获取新的访问令牌 . 这很好地工作没有问题...除了我得到的响应包含一个新的刷新令牌???我只期待新的访问令牌 . 我甚至认为如果没有再次传递凭证,这是可能的,但我的grant_type = refresh_token以某种方式生成一个新的刷新令牌,它让我担心 .

1 回答

  • 2

    请参阅Taiseer Joudeh的this post(顺便提一下这是一系列非凡的帖子) .

    您将在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;
    }
    

    所以再一次,没有看到你的代码,我会说它按预期工作 . 如果您不希望滑动到期,请不要让提供程序每次都重新创建刷新令牌 .

相关问题