Két faktor másik lába is kész.
This commit is contained in:
@@ -15,7 +15,7 @@ namespace WorkFlowCheck.BL.Services.Interfaces
|
||||
Task<UserDTO> UpdateUserAsync(UserDTO userDTO);
|
||||
Task<UserDTO> Authenticate(string UserName, string Password);
|
||||
Task<string> Authenticate2F1(string UserName, string Password);
|
||||
Task<UserDTO> Authenticate2F2(string UserName, string Password, string token2FA);
|
||||
Task<UserDTO> Authenticate2F2(string UserName, string Password, string Code, string token2FA);
|
||||
Task<UserDTO> AuthenticateNFC(string NFCCode);
|
||||
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ namespace WorkFlowCheck.BL.Services
|
||||
var user = await _dbContext.Users
|
||||
.Include(i => i.UserRoles)
|
||||
.ThenInclude(i => i.Role)
|
||||
.Where(w => w.UserName == userName)
|
||||
.Where(w => w.UserName == userName && w.Active != false)
|
||||
.FirstOrDefaultAsync();
|
||||
if (user != null && PasswordHasher.VerifyPassword(user.PasswordHash, password))
|
||||
{
|
||||
@@ -137,15 +137,15 @@ namespace WorkFlowCheck.BL.Services
|
||||
{
|
||||
if (!string.IsNullOrEmpty(user.Email))
|
||||
{
|
||||
var token2F = CodeGenerator2F.GenerateSixDigitCode();
|
||||
var code = CodeGenerator2F.GenerateSixDigitCode();
|
||||
|
||||
await _messageService.SendMailAsync(new List<string>()
|
||||
{
|
||||
user.Email,
|
||||
}, "Bejelentkezés megerősítése",
|
||||
Get2FConfirmationMessageBody(token2F));
|
||||
Get2FConfirmationMessageBody(code));
|
||||
|
||||
retVal = CodeGenerator2F.GenerateToken2F(userName, password, token2F);
|
||||
retVal = CodeGenerator2F.GenerateToken2F(userName, password, code);
|
||||
return retVal;
|
||||
}
|
||||
}
|
||||
@@ -156,12 +156,49 @@ namespace WorkFlowCheck.BL.Services
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
public async Task<UserDTO> Authenticate2F2(string UserName, string Password, string token2FA)
|
||||
public async Task<UserDTO> Authenticate2F2(string userName, string password, string code, string token2FA)
|
||||
{
|
||||
var retVal = new UserDTO() { RoleDTO = new List<RoleDTO>() };
|
||||
try
|
||||
{
|
||||
var user = await _dbContext.Users
|
||||
.Include(i => i.UserRoles)
|
||||
.ThenInclude(i => i.Role)
|
||||
.Where(w => w.UserName == userName && w.Active != false)
|
||||
.FirstOrDefaultAsync();
|
||||
if (user != null && PasswordHasher.VerifyPassword(user.PasswordHash, password))
|
||||
{
|
||||
if (CodeGenerator2F.ValidateToken2F(token2FA, userName, password, code))
|
||||
{
|
||||
var userDTO = new UserDTO()
|
||||
{
|
||||
Id = user.Id,
|
||||
UserName = user.UserName,
|
||||
RoleDTO = new List<RoleDTO>(),
|
||||
};
|
||||
foreach (var item in user.UserRoles)
|
||||
{
|
||||
userDTO.RoleDTO.Add(new RoleDTO()
|
||||
{
|
||||
Id = item.Role.Id,
|
||||
RoleName = item.Role.RoleName,
|
||||
});
|
||||
}
|
||||
user.JwtToken = GenerateJwtToken(userDTO);
|
||||
await _dbContext.SaveChangesAsync();
|
||||
|
||||
|
||||
retVal = _mapper.Map<UserDTO>(user);
|
||||
return retVal;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error(ex.Message);
|
||||
}
|
||||
return retVal;
|
||||
|
||||
|
||||
}
|
||||
public async Task<UserDTO> AuthenticateNFC(string NFCCode)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user