PHPackages                             brenoroosevelt/oauth2-govbr - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. brenoroosevelt/oauth2-govbr

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

brenoroosevelt/oauth2-govbr
===========================

Cliente OAuth2 para Gov.br

1.0.2(4y ago)2011.0k↓48.1%3MITPHPPHP ^7.1 || ^8

Since Jul 16Pushed 2y ago2 watchersCompare

[ Source](https://github.com/brenoroosevelt/oauth2-govbr)[ Packagist](https://packagist.org/packages/brenoroosevelt/oauth2-govbr)[ Docs](http://github.com/brenoroosevelt/oauth2-govbr)[ RSS](/packages/brenoroosevelt-oauth2-govbr/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (9)Versions (4)Used By (0)

Cliente OAuth2 para Gov.br
==========================

[](#cliente-oauth2-para-govbr)

[![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://camo.githubusercontent.com/b3ccaad3a5bde5becae663d736807c99d75bbd5cbe167107fdc3553548827403/68747470733a2f2f636f6465636f762e696f2f67682f6272656e6f726f6f736576656c742f6f61757468322d676f7662722f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d53315142413138494258)](https://codecov.io/gh/brenoroosevelt/oauth2-govbr)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/0a170d833586598237c61496f2c22e5b37ae00f934626a5a3d35cb6d4f71d18a/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6272656e6f726f6f736576656c742f686162656d75732f6261646765732f7175616c6974792d73636f72652e706e673f623d6d61696e)](https://scrutinizer-ci.com/g/brenoroosevelt/oauth2-govbr/?branch=main)[![Latest Version](https://camo.githubusercontent.com/9d0e69b109754ba2356f9daedec928a62b1f95089905f4d886994686d09f749e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f6272656e6f726f6f736576656c742f6f61757468322d676f7662722e7376673f7374796c653d666c6174)](https://github.com/brenoroosevelt/oauth2-govbr/releases)[![Software License](https://camo.githubusercontent.com/f251623e510f5909f16ae3f4e6e548dac11340b9fde1a99be26b015b39272c00/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c6174)](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
----------

[](#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
----------

[](#instalação)

Via composer:

```
composer require brenoroosevelt/oauth2-govbr
```

Exemplos de Uso
---------------

[](#exemplos-de-uso)

#### Criando uma instância do provider para GovBr em ambiente de produção:

[](#criando-uma-instância-do-provider-para-govbr-em-ambiente-de-produção)

```
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:

[](#obtendo-a-url-de-autorização)

```
$urlAutorizacao = $govBr->getAuthorizationUrl();
$state = $this->govBr->getState();
// redirecionar o usuário para a url
```

#### Obtendo o token de acesso (Access Token):

[](#obtendo-o-token-de-acesso-access-token)

```
$authorizationCode = $_GET['code'];
$accessToken =
       $govBr->getAccessToken(
            new AuthorizationCode(),
            ['code' => $authorizationCode]
       );
```

#### Obtendo mais informações do usuário:

[](#obtendo-mais-informações-do-usuário)

```
$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:

[](#obtendo-a-url-de-logout)

```
$urlLogout = $govBr->getLogoutUrl();
// redirecionar
```

### Ambiente de Homologação

[](#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:

```
