private async Task <string> GenerateToken(UsuarioDataDto user) { var secretKey = _configuration.GetValue <string>("SecretKey"); var key = Encoding.ASCII.GetBytes(secretKey); var claims = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, user.usuario.Dni), new Claim(ClaimTypes.Name, user.usuario.Nombre), new Claim(ClaimTypes.Surname, user.usuario.ApellidoPaterno) }; //var roles = await _userManager.GetRolesAsync(user); //foreach (var role in roles) //{ // claims.Add( // new Claim(ClaimTypes.Role, role) // ); //} var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.UtcNow.AddDays(1), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var tokenHandler = new JwtSecurityTokenHandler(); var createdToken = tokenHandler.CreateToken(tokenDescriptor); return(tokenHandler.WriteToken(createdToken)); }
public ActionResult <UsuarioDataDto> ValidarIngreso([FromBody] UsuarioLoginDto UsuarioLogin) { try { UsuarioDataDto usuarioData = _usuarioService.GetDatosUsuario(UsuarioLogin.Dni, UsuarioLogin.Contrasena); var usuarioGen = new { usuariotoken = GenerateToken(usuarioData).Result, usuario = usuarioData }; return(Ok(usuarioGen)); } catch (UserLoginIncorrectException UserIncorrect) { return(BadRequest(UserIncorrect.ExceptionDto)); } catch (UserLoginNotFoundException UserNotFound) { return(BadRequest(UserNotFound.ExceptionDto)); } }