Este projeto implementa autenticação Login Único do GOV.BR utilizando OAuth2 e JWT em PHP.
├── .gitignore
├── composer.json
├── docker-compose.yml
├── Dockerfile
├── public/
│ ├── .htaccess
│ ├── index.php
│ ├── package.json
├── src/
│ ├── GovBrAuth.php
- PHP 8.1 ou superior
- Composer
- Node.js e npm (para o Design System do Gov.BR)
- Docker (opcional)
src/GovBrAuth.php: Classe principal que gerencia a autenticação com o GovBR.public/index.php: Ponto de entrada da aplicação, gerencia o fluxo de autenticação.Dockerfile: Configuração para rodar o projeto em um container Docker.docker-compose.yml: Arquivo de configuração para orquestrar o ambiente Docker.composer.json: Gerencia as dependências do projeto.public/package.json: Arquivo de configuração para instalar as dependências do Design System do Gov.BR.
-
Clone o repositório:
git clone https://github.com/herbet/govbr-auth-php.git cd govbr-auth-php -
Instale as dependências PHP:
composer install
-
Instale as dependências do Design System do Gov.BR:
cd public npm install -
Configure as variáveis de ambiente no arquivo
public/index.php:$client_id = 'CLIENT_ID'; $client_secret = 'CLIENT_SECRET'; $redirect_uri = 'https://seu-sistema.gov.br/callback';
-
Execute o projeto:
- Com Docker:
docker-compose up -d
- Com Docker:
Para que o fluxo de autenticação com o Login Único do gov.br funcione corretamente em ambiente de desenvolvimento (como localhost), é necessário realizar o apontamento local do domínio que foi cadastrado como redirect URI na solicitação de credenciais no gov.br.
Edite o arquivo /etc/hosts com privilégios administrativos:
sudo nano /etc/hostsAdicione a seguinte linha (ajuste para o domínio que você cadastrou):
127.0.0.1 sistema.gov.br
Edite o arquivo C:\Windows\System32\drivers\etc\hosts com permissões de administrador e adicione:
127.0.0.1 sistema.cgu.gov.br
Importante: esse apontamento é necessário apenas em ambiente local.
- Acesse a página inicial do projeto.
- Clique no botão "Entrar com gov.br".
- Após autenticar no GovBR, você será redirecionado para o callback configurado.
- O usuário autenticado será exibido na tela.
O projeto inclui um Dockerfile e um docker-compose.yml para facilitar a execução em ambientes isolados. O Apache está configurado para servir os arquivos da pasta public.
O projeto utiliza o Design System do Gov.BR para estilização. Certifique-se de instalar as dependências do package.json na pasta public utilizando o comando npm install.