private async Task <LaMinka.Logica.Model.Cliente> AuthenticateUser(LaMinka.Logica.Model.Cliente login) { var cliente = await _servicioCliente.GetByEmailAndPassword(login.Email, login.Password); if (cliente != null) { return(cliente); } else { return(null); } }
public async Task <IActionResult> Login([FromBody] LaMinka.Logica.Model.Cliente login) { IActionResult response = Unauthorized(); var user = await AuthenticateUser(login); if (user != null) { var tokenString = GenerateJSONWebToken(user); response = Ok(new { token = tokenString, user = user }); } return(response); }
private string GenerateJSONWebToken(LaMinka.Logica.Model.Cliente userInfo) { var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"])); var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256); ClaimsIdentity claimsIdentity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, userInfo.Email) }); var token = new JwtSecurityTokenHandler().CreateJwtSecurityToken(_config["Jwt:Issuer"], _config["Jwt:Issuer"], subject: claimsIdentity, notBefore: DateTime.UtcNow, expires: DateTime.UtcNow.AddMinutes(Convert.ToInt32(120)), signingCredentials: credentials); Console.WriteLine(token); return(new JwtSecurityTokenHandler().WriteToken(token)); }