public async Task <ActionResult <RespuestaAutenticacion> > Login([FromBody] CredencialesUsuarios credenciales) { var resultado = await signInManager.PasswordSignInAsync(credenciales.Email, credenciales.Password, isPersistent : false, lockoutOnFailure : false); if (resultado.Succeeded) { return(await ConstruirToekn(credenciales)); } else { return(BadRequest("Login Incorrecto")); } }
public async Task <Boolean> LoguearUsuario(CredencialesUsuarios credenciales) { var consulta = await _usuariosRepositorio.GetAllAsync(); var usuario = consulta.Where(usr => usr.Usuario == credenciales.Usuario && usr.Contrasena == credenciales.Contrasena).FirstOrDefault(); if (usuario != null) { return(true); } return(false); }
public async Task <IActionResult> Login(CredencialesUsuarios model) { /* * Aquí deberá ir la lógica de validación, en nuestro ASP.NET Identity * y luego de verificar que sea una autenticación correcta vamos a proceder a * generar el token */ var response = await _usuariosNegocio.LoguearUsuario(model); // usuario válido if (response) { var user = new UsuarioModel { Usuario = model.Usuario, Contrasena = model.Contrasena }; /* Creamos la información que queremos transportar en el token, * en nuestro los datos del usuario */ var claims = new[] { new Claim("UserData", JsonConvert.SerializeObject(user)) }; // Generamos el Token var token = new JwtSecurityToken ( issuer: _configuration["ApiAuth:Issuer"], audience: _configuration["ApiAuth:Audience"], claims: claims, expires: DateTime.UtcNow.AddDays(60), notBefore: DateTime.UtcNow, signingCredentials: new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["ApiAuth:SecretKey"])), SecurityAlgorithms.HmacSha256) ); // Retornamos el token return(Ok( new { response = new JwtSecurityTokenHandler().WriteToken(token) } )); } return(NotFound()); }
public async Task <ActionResult <RespuestaAutenticacion> > Crear([FromBody] CredencialesUsuarios credenciales) { var usuario = new IdentityUser { UserName = credenciales.Email, Email = credenciales.Email }; var resultado = await userManager.CreateAsync(usuario, credenciales.Password); if (resultado.Succeeded) { return(await ConstruirToekn(credenciales)); } else { return(BadRequest(resultado.Errors)); } }
private async Task <RespuestaAutenticacion> ConstruirToken(CredencialesUsuarios credenciales) { //Conjunto de claims que colocaremos en el jwt var claims = new List <Claim>() { //El correo del usuario estara en el token new Claim("email", credenciales.Email), }; //cargar los claims para que se incluyan en el jwt var usuario = await userManager.FindByNameAsync(credenciales.Email); //obtener los claims del usuario var claimsDB = await userManager.GetClaimsAsync(usuario); //agregamos los claims de la base de datos a nuestra lista de claims claims.AddRange(claimsDB); //Introducimos nuestra llave secreta de IConfiguration var llave = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(configuration["llavejwt"])); var creds = new SigningCredentials(llave, SecurityAlgorithms.HmacSha256); //Tiempo de expiracion del Token var expiracion = DateTime.UtcNow.AddYears(1); var token = new JwtSecurityToken(issuer: null, audience: null, claims: claims, expires: expiracion, signingCredentials: creds); return(new RespuestaAutenticacion() { //Pasamos el token creado Token = new JwtSecurityTokenHandler().WriteToken(token), Expiracion = expiracion }); }
private async Task <RespuestaAutenticacion> ConstruirToekn(CredencialesUsuarios credenciales) { var claims = new List <Claim>() { new Claim("email", credenciales.Email) }; var usuario = await userManager.FindByEmailAsync(credenciales.Email); var claimsDB = await userManager.GetClaimsAsync(usuario); claims.AddRange(claimsDB); var llave = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(configuration["llavejwt"])); var creds = new SigningCredentials(llave, SecurityAlgorithms.HmacSha256); var expiracion = DateTime.UtcNow.AddYears(1); var token = new JwtSecurityToken(issuer: null, audience: null, claims: claims, expires: expiracion); return(new RespuestaAutenticacion() { Token = new JwtSecurityTokenHandler().WriteToken(token), Expiracion = expiracion }); }