public static string GenerateToken(IConfiguration configuration, AppContato contato) { var secret = configuration.GetValue <string>("secret"); var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(secret); var claims = new List <Claim>() { new Claim(JwtRegisteredClaimNames.UniqueName, contato.Email), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")), new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")), new Claim(ClaimTypes.Name, contato.Nome ?? string.Empty), new Claim(ClaimTypes.Surname, contato.SobreNome ?? string.Empty), new Claim(ClaimTypes.NameIdentifier, Convert.ToString(contato.Codigo)), new Claim(ClaimTypes.Role, "ENTREVISTADO") }; var token = tokenHandler.CreateToken(new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new GenericIdentity(contato.Email, "Auth"), claims), Expires = DateTime.UtcNow.AddDays(1), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }); return(tokenHandler.WriteToken(token)); }
private AcessoQuery GerarToken(AppContato contato) { return(new AcessoQuery { Email = contato.Email, AccessToken = JwtToken.GenerateToken(_configuration, contato) }); }
public IActionResult Atualizar([FromRoute] long id, [FromBody] AppContato command) { var contato = _contatoRepository.Find(id); contato.Nome = command.Nome; contato.SobreNome = command.SobreNome; contato.DataNascimento = command.DataNascimento; contato.Email = command.Email; contato.Telefone = command.Telefone; contato.ImagemUrl = command.ImagemUrl; _contatoRepository.Update(contato); return(NoContent()); }
public ActionResult <AppContato> Adicionar([FromBody] AppContato command) { return(Created("contatos", _contatoRepository.Add(command))); }