Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/brenoroosevelt/oauth2-govbr
Cliente OAuth2 para Gov.br
https://github.com/brenoroosevelt/oauth2-govbr
authorization-code-grant gov-br govbr governo-federal league-oauth2 oauth oauth2 sso
Last synced: 16 days ago
JSON representation
Cliente OAuth2 para Gov.br
- Host: GitHub
- URL: https://github.com/brenoroosevelt/oauth2-govbr
- Owner: brenoroosevelt
- License: mit
- Created: 2021-07-15T12:10:23.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-03T19:20:19.000Z (over 1 year ago)
- Last Synced: 2024-11-18T07:06:01.303Z (about 1 month ago)
- Topics: authorization-code-grant, gov-br, govbr, governo-federal, league-oauth2, oauth, oauth2, sso
- Language: PHP
- Homepage: https://github.com/brenoroosevelt/oauth2-govbr
- Size: 57.6 KB
- Stars: 18
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Cliente OAuth2 para Gov.br
[![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)
[![codecov](https://codecov.io/gh/brenoroosevelt/oauth2-govbr/branch/main/graph/badge.svg?token=S1QBA18IBX)](https://codecov.io/gh/brenoroosevelt/oauth2-govbr)
[![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)
[![Latest Version](https://img.shields.io/github/release/brenoroosevelt/oauth2-govbr.svg?style=flat)](https://github.com/brenoroosevelt/oauth2-govbr/releases)
[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat)](LICENSE.md)Este pacote fornece suporte OAuth 2.0 para Gov.br usando a biblioteca cliente do [League PHP](https://github.com/thephpleague/oauth2-client).
## Requisitos
Versões suportadas do PHP:* PHP 8.2
* PHP 8.1
* PHP 8.0
* PHP 7.4
* PHP 7.3
* PHP 7.2
* PHP 7.1## Instalação
Via composer:```bash
composer require brenoroosevelt/oauth2-govbr
```## Exemplos de Uso
#### Criando uma instância do provider para GovBr em ambiente de produção:```php
use BrenoRoosevelt\OAuth2\Client\GovBr;$govBr = new GovBr([
'clientId' => 'XXXXXXXX', // Client ID fornecido pelo GovBr
'clientSecret' => 'YYYYYYYY', // Senha fornecida pelo provedor GovBr
'redirectUri' => "https://seu-app-dominio.com.br/seu-login", // Url de redirecionamento
'redirectUriLogout' => "https://seu-app-dominio.com.br/seu-logout"
]);
```
Atençã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(...)`.#### Obtendo a url de autorização:
```php
$urlAutorizacao = $govBr->getAuthorizationUrl();
$state = $this->govBr->getState();
// redirecionar o usuário para a url
```#### Obtendo o token de acesso (Access Token):
```php
$authorizationCode = $_GET['code'];
$accessToken =
$govBr->getAccessToken(
new AuthorizationCode(),
['code' => $authorizationCode]
);
```
#### Obtendo mais informações do usuário:
```php
$govBrUser = $govBr->getResourceOwner($accessToken);
$govBrUser->getName();
$govBrUser->getCpf();
$govBrUser->getAvatarUrl();
$govBrUser->getProfile();
$govBrUser->getPhoneNumber();
$govBrUser->phoneNumberVerified();
$govBrUser->getEmail();
$govBrUser->emailVerified();// Obtendo o avatar do usuário
$avatar = $govBr->getAvatar($govBrUser);
if ($avatar !== null) {
$avatar->image();
$avatar->imageBase64();
$avatar->mimeType();
$avatar->toHtml(['width' => 60]);
}
```
#### Obtendo a url de logout:
```php
$urlLogout = $govBr->getLogoutUrl();
// redirecionar
```### Ambiente de Homologação
Por 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:
```php
'XXXXXXXX', // Client ID fornecido pelo GovBr
'clientSecret' => 'YYYYYYYY', // Senha fornecida pelo provedor GovBr
'redirectUri' => "https://seu-app-dominio.com.br/seu-login", // Url de redirecionamento
'redirectUriLogout' => "https://seu-app-dominio.com.br/seu-logout"
]);
```
Além do provider para Gov.br, junto com este pacote fornecemos um exemplo para o fluxo _Authorization Code_ [aqui](/example/AuthorizationCodeFlow.php).
Diponibilizamos 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).## Contribuindo
Para contribuir com esse projeto, por favor veja [nossas diretrizes](CONTRIBUTING.md).## Segurança
Se você descobrir qualquer problema relacionado à segurança, envie um e-mail em vez de abrir uma _issue_.## Licença
Este projeto está licenciado sob os termos da licença MIT. Consulte o arquivo [LICENSE](LICENSE) para entender os direitos e limitações.[PSR-1]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md
[PSR-2]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md
[PSR-4]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md
[PSR-7]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-7-http-message.md