{"id":22452159,"url":"https://github.com/brenoroosevelt/oauth2-govbr","last_synced_at":"2025-08-02T00:32:48.939Z","repository":{"id":62496903,"uuid":"386276676","full_name":"brenoroosevelt/oauth2-govbr","owner":"brenoroosevelt","description":"Cliente OAuth2 para Gov.br","archived":false,"fork":false,"pushed_at":"2023-08-03T19:20:19.000Z","size":59,"stargazers_count":18,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-18T07:06:01.303Z","etag":null,"topics":["authorization-code-grant","gov-br","govbr","governo-federal","league-oauth2","oauth","oauth2","sso"],"latest_commit_sha":null,"homepage":"https://github.com/brenoroosevelt/oauth2-govbr","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brenoroosevelt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-15T12:10:23.000Z","updated_at":"2024-08-19T00:56:46.000Z","dependencies_parsed_at":"2022-11-02T11:32:41.275Z","dependency_job_id":null,"html_url":"https://github.com/brenoroosevelt/oauth2-govbr","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brenoroosevelt%2Foauth2-govbr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brenoroosevelt%2Foauth2-govbr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brenoroosevelt%2Foauth2-govbr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brenoroosevelt%2Foauth2-govbr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brenoroosevelt","download_url":"https://codeload.github.com/brenoroosevelt/oauth2-govbr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228419568,"owners_count":17916772,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authorization-code-grant","gov-br","govbr","governo-federal","league-oauth2","oauth","oauth2","sso"],"created_at":"2024-12-06T06:09:59.466Z","updated_at":"2024-12-06T06:09:59.557Z","avatar_url":"https://github.com/brenoroosevelt.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cliente OAuth2 para Gov.br\n[![CI Build](https://github.com/brenoroosevelt/oauth2-govbr/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/brenoroosevelt/oauth2-govbr/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/brenoroosevelt/oauth2-govbr/branch/main/graph/badge.svg?token=S1QBA18IBX)](https://codecov.io/gh/brenoroosevelt/oauth2-govbr) \n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/brenoroosevelt/habemus/badges/quality-score.png?b=main)](https://scrutinizer-ci.com/g/brenoroosevelt/oauth2-govbr/?branch=main) \n[![Latest Version](https://img.shields.io/github/release/brenoroosevelt/oauth2-govbr.svg?style=flat)](https://github.com/brenoroosevelt/oauth2-govbr/releases) \n[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat)](LICENSE.md) \n\nEste pacote fornece suporte OAuth 2.0 para Gov.br usando a biblioteca cliente do [League PHP](https://github.com/thephpleague/oauth2-client).\n\n## Requisitos\nVersões suportadas do PHP:\n\n* PHP 8.2\n* PHP 8.1\n* PHP 8.0\n* PHP 7.4\n* PHP 7.3\n* PHP 7.2\n* PHP 7.1\n\n## Instalação\nVia composer:\n\n```bash\ncomposer require brenoroosevelt/oauth2-govbr \n```\n\n## Exemplos de Uso\n#### Criando uma instância do provider para GovBr em ambiente de produção:\n\n```php\nuse BrenoRoosevelt\\OAuth2\\Client\\GovBr;\n\n$govBr = new GovBr([\n    'clientId'     =\u003e 'XXXXXXXX', // Client ID fornecido pelo GovBr\n    'clientSecret' =\u003e 'YYYYYYYY', // Senha fornecida pelo provedor GovBr\n    'redirectUri'  =\u003e \"https://seu-app-dominio.com.br/seu-login\", // Url de redirecionamento\n    'redirectUriLogout'   =\u003e \"https://seu-app-dominio.com.br/seu-logout\"\n]);\n```\nAtenção! Os parâmetros `clientId` e `clientSecret` acima são sigilosos, evite enviar esses valores para seu repositório git; prefira obtê-los usando `getenv(...)`.\n\n#### Obtendo a url de autorização:\n```php\n$urlAutorizacao = $govBr-\u003egetAuthorizationUrl();\n$state = $this-\u003egovBr-\u003egetState();\n// redirecionar o usuário para a url \n```\n\n#### Obtendo o token de acesso (Access Token):\n```php\n$authorizationCode = $_GET['code'];\n$accessToken = \n       $govBr-\u003egetAccessToken(\n            new AuthorizationCode(), \n            ['code' =\u003e $authorizationCode]\n       );\n```\n#### Obtendo mais informações do usuário:\n```php\n$govBrUser = $govBr-\u003egetResourceOwner($accessToken);         \n$govBrUser-\u003egetName();\n$govBrUser-\u003egetCpf();\n$govBrUser-\u003egetAvatarUrl();\n$govBrUser-\u003egetProfile();\n$govBrUser-\u003egetPhoneNumber();\n$govBrUser-\u003ephoneNumberVerified();\n$govBrUser-\u003egetEmail();\n$govBrUser-\u003eemailVerified();\n\n// Obtendo o avatar do usuário\n$avatar = $govBr-\u003egetAvatar($govBrUser);\nif ($avatar !== null) {\n    $avatar-\u003eimage();\n    $avatar-\u003eimageBase64();\n    $avatar-\u003emimeType();\n    $avatar-\u003etoHtml(['width' =\u003e 60]);\n}\n```\n#### Obtendo a url de logout:\n```php\n$urlLogout = $govBr-\u003egetLogoutUrl();\n// redirecionar  \n```\n\n### Ambiente de Homologação\nPor padrão, o ambiente será de _produção_, mas você pode escolher o ambiente de _**homologação**_ (staging) solicitando uma instância da seguinte forma:\n```php\n\u003c?php\n$govBr = GovBr::staging([\n    'clientId'     =\u003e 'XXXXXXXX', // Client ID fornecido pelo GovBr\n    'clientSecret' =\u003e 'YYYYYYYY', // Senha fornecida pelo provedor GovBr\n    'redirectUri'  =\u003e \"https://seu-app-dominio.com.br/seu-login\", // Url de redirecionamento\n    'redirectUriLogout'   =\u003e \"https://seu-app-dominio.com.br/seu-logout\"\n]);\n```\nAlém do provider para Gov.br, junto com este pacote fornecemos um exemplo para o fluxo _Authorization Code_ [aqui](/example/AuthorizationCodeFlow.php).\nDiponibilizamos também um servidor (containar docker) para que você possar executar esse fluxo em um ambiente de homolocação usando suas configuraçoes. Para isso, basta seguir as instruções desse [ROTEIRO](staging.md).  \n\n## Contribuindo\nPara contribuir com esse projeto, por favor veja [nossas diretrizes](CONTRIBUTING.md).\n\n## Segurança\nSe você descobrir qualquer problema relacionado à segurança, envie um e-mail em vez de abrir uma _issue_.\n\n## Licença\nEste projeto está licenciado sob os termos da licença MIT. Consulte o arquivo [LICENSE](LICENSE) para entender os direitos e limitações.\n\n[PSR-1]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md\n[PSR-2]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md\n[PSR-4]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md\n[PSR-7]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-7-http-message.md","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrenoroosevelt%2Foauth2-govbr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrenoroosevelt%2Foauth2-govbr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrenoroosevelt%2Foauth2-govbr/lists"}