| public class JwtManager : IJwtManager | public class JwtManager : IJwtManager | ||||
| { | { | ||||
| //private string Secret = "db3OIsj+BXE9NZDy0t8W3TcNekrF+2d/1sFnWG4HnV8TZY30iTOdtVWJG8abWvB1GlOgJuQZdcF2Luqm/hccMw=="; | //private string Secret = "db3OIsj+BXE9NZDy0t8W3TcNekrF+2d/1sFnWG4HnV8TZY30iTOdtVWJG8abWvB1GlOgJuQZdcF2Luqm/hccMw=="; | ||||
| //private readonly IConfiguration configuration; | |||||
| private readonly IConfiguration configuration; | |||||
| private readonly string Secret; | private readonly string Secret; | ||||
| //public JwtManager(IConfiguration configuration) | |||||
| //{ | |||||
| // this.configuration = configuration; | |||||
| // Secret = configuration["SecurityKey"]; | |||||
| //} | |||||
| public JwtManager(IConfiguration configuration) | |||||
| { | |||||
| this.configuration = configuration; | |||||
| Secret = configuration["SecurityKey"]; | |||||
| } | |||||
| public string GenerateToken(string username, int expireMinutes = 20) | public string GenerateToken(string username, int expireMinutes = 20) | ||||
| { | { | ||||
| expireMinutes = 1; | |||||
| var symmetricKey = Convert.FromBase64String(Secret); | var symmetricKey = Convert.FromBase64String(Secret); | ||||
| var tokenHandler = new JwtSecurityTokenHandler(); | var tokenHandler = new JwtSecurityTokenHandler(); | ||||
| var now = DateTime.UtcNow; | var now = DateTime.UtcNow; |
| using BlackRock.Reporting.API.Mediator.AuthenticationMediator.Commands; | using BlackRock.Reporting.API.Mediator.AuthenticationMediator.Commands; | ||||
| using BlackRock.Reporting.API.Mediator.AuthenticationMediator.Models; | |||||
| using MediatR; | using MediatR; | ||||
| using Microsoft.AspNetCore.Mvc; | using Microsoft.AspNetCore.Mvc; | ||||
| public class LoginCommandHandlers : IRequestHandler<LoginCommand, Result<CredentialsCommand>> | public class LoginCommandHandlers : IRequestHandler<LoginCommand, Result<CredentialsCommand>> | ||||
| { | { | ||||
| private readonly ILogger<LoginCommand> logger; | private readonly ILogger<LoginCommand> logger; | ||||
| private readonly JwtManager jwtManager; | |||||
| private readonly RefreshTokenManager refreshTokenManager; | |||||
| private readonly IJwtManager jwtManager; | |||||
| private readonly IRefreshTokenManager refreshTokenManager; | |||||
| private readonly UserManager<ApplicationUser> userManager; | private readonly UserManager<ApplicationUser> userManager; | ||||
| public LoginCommandHandlers(ILogger<LoginCommand> logger, JwtManager jwtManager, RefreshTokenManager refreshTokenManager, UserManager<ApplicationUser> userManager) | |||||
| public LoginCommandHandlers(ILogger<LoginCommand> logger, IJwtManager jwtManager, IRefreshTokenManager refreshTokenManager, UserManager<ApplicationUser> userManager) | |||||
| { | { | ||||
| this.logger = logger; | this.logger = logger; | ||||
| this.jwtManager = jwtManager; | this.jwtManager = jwtManager; | ||||
| } | } | ||||
| catch (Exception ex) | catch (Exception ex) | ||||
| { | { | ||||
| logger.LogError(ex, "Faild to add data to DB."); | |||||
| return new Result<CredentialsCommand> { IsSuccess = false, Error = "Faild to add data to DB." }; | |||||
| logger.LogError(ex, "Faild login"); | |||||
| return new Result<CredentialsCommand> { IsSuccess = false, Error = "Faild login." }; | |||||
| } | } | ||||
| } | } | ||||
| } | } |
| public class LogoutCommandHandlers : IRequestHandler<LogoutCommand, Result<bool>> | public class LogoutCommandHandlers : IRequestHandler<LogoutCommand, Result<bool>> | ||||
| { | { | ||||
| private readonly ILogger<LogoutCommand> logger; | private readonly ILogger<LogoutCommand> logger; | ||||
| private readonly JwtManager jwtManager; | |||||
| private readonly RefreshTokenManager refreshTokenManager; | |||||
| private readonly IJwtManager jwtManager; | |||||
| private readonly IRefreshTokenManager refreshTokenManager; | |||||
| private readonly UserManager<ApplicationUser> userManager; | private readonly UserManager<ApplicationUser> userManager; | ||||
| public LogoutCommandHandlers(ILogger<LogoutCommand> logger, JwtManager jwtManager, RefreshTokenManager refreshTokenManager, UserManager<ApplicationUser> userManager) | |||||
| public LogoutCommandHandlers(ILogger<LogoutCommand> logger, IJwtManager jwtManager, IRefreshTokenManager refreshTokenManager, UserManager<ApplicationUser> userManager) | |||||
| { | { | ||||
| this.logger = logger; | this.logger = logger; | ||||
| this.jwtManager = jwtManager; | this.jwtManager = jwtManager; |
| public class RefreshCommandHandlers : IRequestHandler<RefreshCommand, Result<CredentialsCommand>> | public class RefreshCommandHandlers : IRequestHandler<RefreshCommand, Result<CredentialsCommand>> | ||||
| { | { | ||||
| private readonly ILogger<RefreshCommand> logger; | private readonly ILogger<RefreshCommand> logger; | ||||
| private readonly JwtManager jwtManager; | |||||
| private readonly RefreshTokenManager refreshTokenManager; | |||||
| private readonly IJwtManager jwtManager; | |||||
| private readonly IRefreshTokenManager refreshTokenManager; | |||||
| private readonly UserManager<ApplicationUser> userManager; | private readonly UserManager<ApplicationUser> userManager; | ||||
| public RefreshCommandHandlers(ILogger<RefreshCommand> logger, JwtManager jwtManager, RefreshTokenManager refreshTokenManager, UserManager<ApplicationUser> userManager) | |||||
| public RefreshCommandHandlers(ILogger<RefreshCommand> logger, IJwtManager jwtManager, IRefreshTokenManager refreshTokenManager, UserManager<ApplicationUser> userManager) | |||||
| { | { | ||||
| this.logger = logger; | this.logger = logger; | ||||
| this.jwtManager = jwtManager; | this.jwtManager = jwtManager; |