是否可以在 oidc 客户端中设置 RefreshTokenUsage?

Is there a possibility to set RefreshTokenUsage in oidc client?

我的令牌有问题。当我们启动我们的程序时,应该检查缓存中的有效令牌。这是第一次有效,但之后 refreshToken.isError 始终为真,即使令牌尚未过期也是如此。 我找到了此页面 https://identityserver4.readthedocs.io/en/latest/topics/refresh_tokens.html,但我找不到设置 RefreshTokenUsage 的方法。如果有人知道如何解决这个问题,那将非常有帮助。

方法如下:

      private async Task<string?> TryGetTokenFromCache()
    {
        StatusChangeEvent?.InvokeRetrievingTokenFromCache();
        var existingToken = _dataProtection.Unprotect(_cacheFilePath);
        if (existingToken != null)
        {
            var token = System.Text.Encoding.Default.GetString(existingToken);
            if (!string.IsNullOrEmpty(token))
            {
                var refreshTokenResult = await _client.RefreshTokenAsync(token);
                if (!refreshTokenResult.IsError)
                {
                    StatusChangeEvent?.InvokeLoggedIn();
                    return refreshTokenResult.AccessToken;
                }
            }
        }

        return null;
    }

解决方法: 我们没有在缓存文件中设置新的刷新令牌。 当结果没有错误时,我们只需要将新的 refreshtoken 写入缓存文件。