private async Task <User> GetUser(LoginWebModel model) { var invalidModel = string.IsNullOrEmpty(model.UserName) || string.IsNullOrEmpty(model.Password); if (invalidModel) { return(null); } var user = await _userManager.FindByNameAsync(model.UserName); if (user == null) { return(null); } var passwordValid = await _userManager.CheckPasswordAsync(user, model.Password); if (!passwordValid) { return(null); } return(user); }
public async Task <IActionResult> Login(LoginWebModel model) { if (!ModelState.IsValid) { return(View(model)); } #region Лог _logger.LogInformation($"Вход пользователя в систему {model.UserName}"); #endregion var result = await _signInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, #if DEBUG false #else true #endif ); if (result.Succeeded) { return(LocalRedirect(model.ReturnUrl ?? "/")); } ModelState.AddModelError("", "Ошибка в имени пользователя, либо в пароле"); #region Лог _logger.LogInformation($"Ошибка в имени пользователя, либо в пароле"); #endregion return(View()); }
public async Task TokenWeb([FromBody] LoginWebModel model) { var response = _authService.TokenWeb(model.email, model.password); Response.ContentType = "application/json"; await Response.WriteAsync(JsonConvert.SerializeObject(response, new JsonSerializerSettings { Formatting = Formatting.Indented })); }
public async Task <JwtSecurityToken> CreateToken(LoginWebModel model) { var user = await GetUser(model); if (user == null) { return(null); } var claims = new[] { new Claim("user_id", user.Id.ToString()), new Claim("some_type", "some_value") }; return(_tokenFactory .AddClaims(claims) .Build()); }
public async Task <IActionResult> Login([FromBody] LoginWebModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var token = await _authService.CreateToken(model); if (token == null) { ModelState.TryAddModelError("login_failure", "Invalid username or password."); return(new BadRequestObjectResult(JsonConvert.SerializeObject(ModelState))); } var response = new { id = token.Claims.FirstOrDefault(x => x.Type == "user_id")?.Value, auth_token = new JwtSecurityTokenHandler().WriteToken(token) }; return(new OkObjectResult(JsonConvert.SerializeObject(response))); }