update
This commit is contained in:
+21
-3
@@ -2,15 +2,33 @@ namespace CMSMicroservice.Application.UserCQ.Queries.AdminGetJwtToken;
|
||||
public class AdminGetJwtTokenQueryHandler : IRequestHandler<AdminGetJwtTokenQuery, AdminGetJwtTokenResponseDto>
|
||||
{
|
||||
private readonly IApplicationDbContext _context;
|
||||
private readonly IGenerateJwtToken _generateJwt;
|
||||
private readonly IHashService _hashService;
|
||||
|
||||
public AdminGetJwtTokenQueryHandler(IApplicationDbContext context)
|
||||
public AdminGetJwtTokenQueryHandler(IApplicationDbContext context, IGenerateJwtToken generateJwt, IHashService hashService)
|
||||
{
|
||||
_context = context;
|
||||
_generateJwt = generateJwt;
|
||||
_hashService = hashService;
|
||||
}
|
||||
|
||||
public async Task<AdminGetJwtTokenResponseDto> Handle(AdminGetJwtTokenQuery request, CancellationToken cancellationToken)
|
||||
{
|
||||
//TODO: Implement your business logic
|
||||
return new AdminGetJwtTokenResponseDto();
|
||||
var user = await _context.Users
|
||||
.Include(u => u.UserRoles)
|
||||
.ThenInclude(ur => ur.Role)
|
||||
.FirstOrDefaultAsync(f => f.Mobile == request.Username, cancellationToken);
|
||||
if (user == null)
|
||||
throw new Exception("Invalid username or password.");
|
||||
|
||||
// verify password (supports PBKDF2 or legacy SHA-256)
|
||||
if (!_hashService.VerifyPassword(request.Password, user.HashPassword))
|
||||
throw new Exception("Invalid username or password.");
|
||||
|
||||
return new AdminGetJwtTokenResponseDto()
|
||||
{
|
||||
Token = await _generateJwt.GenerateJwtToken(user),
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user