Пример #1
0
        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));
        }
Пример #2
0
 private AcessoQuery GerarToken(AppContato contato)
 {
     return(new AcessoQuery
     {
         Email = contato.Email,
         AccessToken = JwtToken.GenerateToken(_configuration, contato)
     });
 }
Пример #3
0
        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());
        }
Пример #4
0
 public ActionResult <AppContato> Adicionar([FromBody] AppContato command)
 {
     return(Created("contatos", _contatoRepository.Add(command)));
 }