Exemplo n.º 1
0
        public JsonResult Login([FromBody] PessoaLogin pessoaLogin)
        {
            Pessoa pessoa = new Pessoa();

            pessoa.Email = pessoaLogin.Email;
            pessoa.Senha = pessoaLogin.Senha;
            bool loginAutenticado = true;

            if (pessoa == null)
            {
                return(Json(null)); // Código 404
            }
            pessoa.IdPessoa = pessoaLogic.ValidarLogin(pessoa.Email, pessoa.Senha);
            if (pessoa.IdPessoa == 0)
            {
                loginAutenticado = false;
            }

            PessoaToken pessoaToken = new PessoaToken();

            pessoaToken.IdPessoa    = pessoa.IdPessoa;
            pessoaToken.Autenticado = loginAutenticado;

            if (loginAutenticado)
            {
                var claims = new [] {
                    new Claim(ClaimTypes.Name, pessoa.Email),
                };

                var key = new SymmetricSecurityKey(
                    Encoding.UTF8.GetBytes(SecurityKey)
                    );

                pessoaToken.Message = "Usuário autenticado";

                var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                var token = new JwtSecurityToken(
                    issuer: "sesi",
                    audience: "usuário",
                    claims: claims,
                    expires: DateTime.Now.AddYears(13),
                    signingCredentials: creds);

                pessoaToken.Token = new JwtSecurityTokenHandler().WriteToken(token);
                _pessoaRepositorio.AddPessoaToken(pessoaToken);

                return(Json(pessoaToken));
            }

            return(Json("Credenciais inválidas...")); // Código 200
        }
Exemplo n.º 2
0
 public void GerarToken(PessoaToken pessoaToken, Pessoa pessoa)
 {
     if (pessoaToken.Autenticado)
     {
         pessoaToken.Message = "Usuário autenticado";
         pessoaToken.Token   = GetToken(pessoa.Email, pessoa.Senha);
         _pessoaRepositorio.AddPessoaToken(pessoaToken);
     }
     else
     {
         pessoaToken.Token = pessoaToken.Message = null;
     }
 }