Пример #1
0
        public static async Task RunRefreshAsync(TokenResponse response, int milliseconds)
        {
            var refresh_token = response.RefreshToken;

            while (true)
            {
                response = await RefreshTokenAsync(refresh_token);

                // Get the resource data using the new tokens...
                await ResourceDataClient.GetDataAndDisplayInConsoleAsync(response.AccessToken);

                if (response.RefreshToken != refresh_token)
                {
                    ShowResponse(response);
                    refresh_token = response.RefreshToken;
                }

                Task.Delay(milliseconds).Wait();
            }
        }
        static async Task MainAsync()
        {
            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.Verbose()
                         .Enrich.WithProperty("App", "ConsoleResourceOwnerFlowRefreshToken")
                         .Enrich.FromLogContext()
                         .WriteTo.ColoredConsole()
                         .WriteTo.File("../Log/ConsoleResourceOwnerFlowRefreshToken")
                         .CreateLogger();

            var response = IdentityServer4Client.LoginAsync("damienbod", "damienbod").Result;

            Log.Logger.Information("GOT TOKENS FROM IDENTITYSERVER4: {AccessToken}", response.AccessToken);

            // GET DATA from the resource server
            await ResourceDataClient.GetDataAndDisplayInConsoleAsync(response.AccessToken);

            Log.Logger.Information("GOT DATA FROM THE RESOURCE SERVER");

            // Run an loop which gets refreshes the token every 6000 milliseconds
            await IdentityServer4Client.RunRefreshAsync(response, 6000);
        }