public override async Task <string> CreateRefreshTokenAsync(RefreshTokenCreationRequest request) { Logger.LogDebug("Creating refresh token"); int lifetime; if (request.Client.RefreshTokenExpiration == TokenExpiration.Absolute) { Logger.LogDebug("Setting an absolute lifetime: {absoluteLifetime}", request.Client.AbsoluteRefreshTokenLifetime); lifetime = request.Client.AbsoluteRefreshTokenLifetime; } else { lifetime = request.Client.SlidingRefreshTokenLifetime; if (request.Client.AbsoluteRefreshTokenLifetime > 0 && lifetime > request.Client.AbsoluteRefreshTokenLifetime) { Logger.LogWarning( "Client {clientId}'s configured " + nameof(request.Client.SlidingRefreshTokenLifetime) + " of {slidingLifetime} exceeds its " + nameof(request.Client.AbsoluteRefreshTokenLifetime) + " of {absoluteLifetime}. The refresh_token's sliding lifetime will be capped to the absolute lifetime", request.Client.ClientId, lifetime, request.Client.AbsoluteRefreshTokenLifetime); lifetime = request.Client.AbsoluteRefreshTokenLifetime; } Logger.LogDebug("Setting a sliding lifetime: {slidingLifetime}", lifetime); } var formCollection = await _scopedHttpContextRequestForm.GetFormCollectionAsync(); var originGrantType = formCollection["grant_type"]; var refreshToken = new RefreshTokenExtra() { Subject = request.Subject, ClientId = request.Client.ClientId, Description = request.Description, AuthorizedScopes = request.AuthorizedScopes, AuthorizedResourceIndicators = request.AuthorizedResourceIndicators, CreationTime = Clock.UtcNow.UtcDateTime, Lifetime = lifetime, OriginGrantType = originGrantType }; refreshToken.SetAccessToken(request.AccessToken, request.RequestedResourceIndicator); var handle = await RefreshTokenStore.StoreRefreshTokenAsync(refreshToken); return(handle); }
public async Task <string> CreateRefreshTokenAsync( ClaimsPrincipal subject, Token accessToken, Client client) { Logger.LogDebug("Creating refresh token"); int lifetime; if (client.RefreshTokenExpiration == TokenExpiration.Absolute) { Logger.LogDebug("Setting an absolute lifetime: {absoluteLifetime}", client.AbsoluteRefreshTokenLifetime); lifetime = client.AbsoluteRefreshTokenLifetime; } else { lifetime = client.SlidingRefreshTokenLifetime; if (client.AbsoluteRefreshTokenLifetime > 0 && lifetime > client.AbsoluteRefreshTokenLifetime) { Logger.LogWarning( "Client {clientId}'s configured " + nameof(client.SlidingRefreshTokenLifetime) + " of {slidingLifetime} exceeds its " + nameof(client.AbsoluteRefreshTokenLifetime) + " of {absoluteLifetime}. The refresh_token's sliding lifetime will be capped to the absolute lifetime", client.ClientId, lifetime, client.AbsoluteRefreshTokenLifetime); lifetime = client.AbsoluteRefreshTokenLifetime; } Logger.LogDebug("Setting a sliding lifetime: {slidingLifetime}", lifetime); } var formCollection = await _scopedHttpContextRequestForm.GetFormCollectionAsync(); var originGrantType = formCollection["grant_type"]; var refreshToken = new RefreshTokenExtra { CreationTime = Clock.UtcNow.UtcDateTime, Lifetime = lifetime, AccessToken = accessToken, OriginGrantType = originGrantType }; var handle = await RefreshTokenStore.StoreRefreshTokenAsync(refreshToken); return(handle); }