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 }
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; } }