コード例 #1
0
        public IActionResult Login(LoginViewModel login)
        {
            try
            {
                Professores professorBuscado = ProfessorRepositorio.BuscarPorEmailESenha(login);
                if (professorBuscado == null)
                {
                    return(NotFound(new { mensagem = "Email ou senha Inválidos." }));
                }


                var claims = new[]
                {
                    // email
                    new Claim(JwtRegisteredClaimNames.Email, professorBuscado.Email),
                    // id
                    new Claim(JwtRegisteredClaimNames.Jti, professorBuscado.IdProfessor.ToString()),
                };

                var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("roman-chave-autenticacao"));

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

                var token = new JwtSecurityToken(
                    issuer: "Roman.WebApi",
                    audience: "Roman.WebApi",
                    claims: claims,
                    expires: DateTime.Now.AddMinutes(30),
                    signingCredentials: creds);

                return(Ok(new
                {
                    token = new JwtSecurityTokenHandler().WriteToken(token)
                }));
            }

            catch (Exception ex)
            {
                return(BadRequest());
            }
        }