/// <summary> /// Create and new refresh token /// </summary> /// <param name="subject"></param> /// <returns></returns> private async Task <(String refreshTokenId, DateTime refreshTokenExpiresUtc)> CreateRefreshTokenAsync(JwtSecurityToken token) { var refreshToken = new RefreshTokenModel( subject: token.Subject, issuedUtc: DateTime.UtcNow, expiresIn: _refreshTokenLifetime, accessToken: new JwtSecurityTokenHandler().WriteToken(token)); var refreshTokenId = await _refreshTokenRepository.SaveRefreshTokenAsync(refreshToken); return(refreshTokenId, refreshToken.ExpiresUtc); }