public async Task <ObjectResult> Login([FromBody] LoginViewModel usuario) { ObjectDataResult <JWTToken> result = new ObjectDataResult <JWTToken>(); bool credenciaisValidas = false; if (usuario != null && !string.IsNullOrWhiteSpace(usuario.UserName)) { // Verifica a existência do usuário nas tabelas do // ASP.NET Core Identity var userIdentity = await _userManager .FindByNameAsync(usuario.UserName); if (userIdentity != null) { // Efetua o login com base no Id do usuário e sua senha SignInResult resultadoLogin = _signInManager .CheckPasswordSignInAsync(userIdentity, usuario.Password, false) .Result; credenciaisValidas = resultadoLogin.Succeeded; } } if (credenciaisValidas) { result.Success = true; result.Data = _accountManagement.GenerateToken(usuario.UserName); } else { result.Success = false; result.Message = "invalid credentials"; } return(result); }
public async Task <IActionResult> Login(LoginCredentials credentials) { var user = await LoginManager.Login(credentials); if (user != null) { var token = AccountManager.GenerateToken(user); return(Ok(new { token })); } else { return(Unauthorized()); } }