示例#1
0
        public IActionResult Login(LoginViewModel dadosLogin)
        {
            try
            {
                Usuarios UsuarioBuscado = IUsuariosRepository.BuscarPorEmailSenha(dadosLogin);
                if (UsuarioBuscado == null)
                {
                    return(NotFound());
                }
                var claims = new[]
                {
                    new Claim(JwtRegisteredClaimNames.Email, UsuarioBuscado.Email),
                    new Claim(JwtRegisteredClaimNames.Jti, IFornecedoresRepository.BuscarPorIdUsuarioVinculado(UsuarioBuscado.UsuarioId).FornecedorId.ToString())
                };
                var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("autopecas-chave-autenticacao"));

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

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

                return(Ok(new
                {
                    token = new JwtSecurityTokenHandler().WriteToken(token)
                }));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
示例#2
0
        public IActionResult Post(LoginViewModel login)
        {
            // Busca o usuário pelo e-mail e senha
            Usuario usuarioBuscado = _usuariosRepository.BuscarPorEmailSenha(login.Email, login.Senha);

            // Caso não encontre nenhum usuário com o e-mail e senha informados
            if (usuarioBuscado == null)
            {
                // Retorna NotFound com uma mensagem de erro
                return NotFound("E-mail ou senha inválidos");
            }

            // Caso o usuário seja encontrado, prossegue para a criação do token

            /*
                Instalar as dependências:
                Criar e validar o jwt
                System.IdentityModel.Tokens.Jwt(5.5.0 ou superior)
                Integrar a parte de autenticação
                Microsoft.AspNetCore.Authentication.JwtBearer(2.1.1 ou compatível com o .Net Core do projeto)
            */

            // Define os dados que serão fornecidos no token - Payload
            var claims = new[]
            {
                new Claim(JwtRegisteredClaimNames.Email, usuarioBuscado.Email),
                new Claim(JwtRegisteredClaimNames.Jti, usuarioBuscado.IdUsuario.ToString()),
                new Claim(ClaimTypes.Role, usuarioBuscado.IdTipoUsuario.ToString())
            };

            // Define a chave de acesso ao token
            var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("Senatur-chave-autenticacao"));

            // Define as credenciais do token - Header
            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            // Gera o token
            var token = new JwtSecurityToken(
                issuer: "Gufi.WebApi",                // emissor do token
                audience: "Gufi.WebApi",              // destinatário do token
                claims: claims,                          // dados definidos acima
                expires: DateTime.Now.AddMinutes(30),    // tempo de expiração
                signingCredentials: creds                // credenciais do token
            );

            // Retorna Ok com o token
            return Ok(new
            {
                token = new JwtSecurityTokenHandler().WriteToken(token)
            });
        }
示例#3
0
        public IActionResult Login(LoginViewModel dadosLogin)
        {
            try
            {
                Usuarios UsuarioEncontrado = IUsuariosRepository.BuscarPorEmailSenha(dadosLogin);

                var claims = new[] {
                      new Claim(JwtRegisteredClaimNames.Email, UsuarioEncontrado.Email),
                      new Claim(JwtRegisteredClaimNames.Jti, UsuarioEncontrado.UsuarioId.ToString()),
                      new Claim(ClaimTypes.Role, UsuarioEncontrado.Perfil)
                      ,new Claim("String" , UsuarioEncontrado.Empresa)
                };

                var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("shirtstore-chave-autenticação"));

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

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

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

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