salexcarvalho / govbr-auth
Pacote Laravel para autenticação Gov.br (OIDC)
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/salexcarvalho/govbr-auth
Requires
- php: >=7.4
- firebase/php-jwt: ^6.0
- guzzlehttp/guzzle: ^7.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0|^12.0
README
Pacote Laravel para autenticação via Gov.br usando OIDC (OpenID Connect).
📦 Requisitos
- PHP >= 7.4
- Laravel ^8.0 | ^9.0 | ^10.0
- Extensão OpenSSL ativada (para JWT)
- GuzzleHTTP
- Firebase PHP-JWT
🚀 Instalação
-
Adicione o repositório (caso esteja usando local via path) no
composer.jsonda sua aplicação:"repositories": [ { "type": "path", "url": "vendor/salexcarvalho/govbr-auth" } ], "require": { "salexcarvalho/govbr-auth": "*" }
-
Execute:
composer require salexcarvalho/govbr-auth
-
Publique as configurações:
php artisan vendor:publish --tag=govbr-config
🔧 Configuração
Após publicar, edite o arquivo config/govbr.php ou defina as variáveis no seu .env:
GOVBR_CLIENT_ID= GOVBR_CLIENT_SECRET= GOVBR_REDIRECT_URI=https://seu-dominio.com/auth/govbr/callback GOVBR_AUTHZ_ENDPOINT=https://sso.acesso.gov.br/authorize GOVBR_TOKEN_ENDPOINT=https://sso.acesso.gov.br/token GOVBR_JWK_ENDPOINT=https://sso.acesso.gov.br/jwk
🚧 Rotas
O pacote carrega automaticamente as rotas no prefixo auth/govbr. Você terá:
| Método | URI | Nome da Rota | Descrição |
|---|---|---|---|
| GET | /auth/govbr/redirect |
govbr.login |
Redireciona para login Gov.br |
| GET | /auth/govbr/callback |
govbr.callback |
Callback do Gov.br após autorização |
| POST | /auth/govbr/logout |
govbr.logout |
Logout da sessão Gov.br |
🛡️ Protegendo Rotas
Para proteger rotas usando a sessão Gov.br, aplique o middleware:
Route::middleware('govbr.auth')->group(function () { Route::get('/dashboard', function () { // Acesso apenas para usuários autenticados via Gov.br }); });
🔄 Fluxo de Autenticação
- Usuário acessa
/auth/govbr/redirect. - É redirecionado ao portal Gov.br para login.
- Após login, Gov.br retorna para
/auth/govbr/callbackcom umcode. - O pacote troca o
codeporid_tokeneaccess_token, valida o JWT via JWK e retorna as claims. - Cria/atualiza o usuário local e realiza
Auth::login($user).
🤝 Contribuição
- Dê um fork no repositório.
- Crie uma branch com a feature:
git checkout -b feature/nova-funcionalidade. - Faça commit das suas alterações:
git commit -m 'Adiciona nova funcionalidade'. - Envie para a branch:
git push origin feature/nova-funcionalidade. - Abra um Pull Request.
📝 Licença
Este projeto está licenciado sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.