public async Task <IActionResult> LoginAsync([FromBody] LoginModel loginModel) { //!string.IsNullOrEmpty(loginModel.Email) && !string.IsNullOrEmpty(loginModel.Password) if (ModelState.IsValid) { UserDTO userFromDB = await _usersService.GetUserByEmailAsync(loginModel.Email); if (userFromDB != null) { if (PasswordManager.VerifyPasswordHash(loginModel.Password, userFromDB.PasswordHash, userFromDB.PasswordSalt)) { List <Guid> userFromDBRoleId = _usersService.GetRoleIdByUserId(userFromDB.Id); Guid roleID = userFromDBRoleId[0]; string tokenString = PasswordManager.CreateToken(userFromDB.Name, roleID, _appSettings.Secret); // return basic user info and authentication token // return Ok(tokenString); return(Ok(new { Id = userFromDB.Id, Name = userFromDB.Name, Email = userFromDB.Email, UserRole = roleID, Token = tokenString })); } } return(BadRequest(new { message = "User don't exist" })); } return(BadRequest(new { message = "Username or password is incorrect" })); }