承接 brenoroosevelt/oauth2-govbr 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

brenoroosevelt/oauth2-govbr

最新稳定版本:1.0.2

Composer 安装命令:

composer require brenoroosevelt/oauth2-govbr

包简介

Cliente OAuth2 para Gov.br

README 文档

README

CI Build codecov Scrutinizer Code Quality Latest Version Software License

Este pacote fornece suporte OAuth 2.0 para Gov.br usando a biblioteca cliente do League PHP.

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:

composer require brenoroosevelt/oauth2-govbr 

Exemplos de Uso

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:

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

Obtendo o token de acesso (Access Token):

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

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:

$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
$govBr = GovBr::staging([
    '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"
]);

Além do provider para Gov.br, junto com este pacote fornecemos um exemplo para o fluxo Authorization Code aqui. 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.

Contribuindo

Para contribuir com esse projeto, por favor veja nossas diretrizes.

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 para entender os direitos e limitações.

统计信息

  • 总下载量: 10.39k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 20
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 20
  • Watchers: 2
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-07-16