public async Task <IActionResult> Login([FromBody] LoginDTO loginResourse) { if (loginResourse == null) { throw new ArgumentNullException(nameof(loginResourse)); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //// первый вариант проверяем одним запросом но плохо не используем механизмы библиотеки //// второй вариант последовательно FindByEmailAsync,FindByNameAsync и проверки результатов var currUser = await _userManager.FindByEmailAsync(loginResourse.login); var currUser = await _userManager.Users.Where(u => u.Email == loginResourse.login | u.UserName == loginResourse.login | u.PhoneNumber == loginResourse.login).FirstOrDefaultAsync(); if (currUser == null) { return(Unauthorized()); } var resoult = await _signInManager.PasswordSignInAsync(currUser, loginResourse.password, false, false); if (!resoult.Succeeded) { return(Unauthorized()); } var token = await _jwtgenerator.GenerateJwtToken(currUser); return(Ok(token)); }