PHPackages                             sistemas-eel/sso-client - 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. sistemas-eel/sso-client

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

sistemas-eel/sso-client
=======================

Cliente SSO para o Portal de Sistemas

v1.0.0-beta.1(3w ago)05GPL-2.0-or-laterPHPPHP ^7.4|^8.0CI passing

Since May 13Pushed 3w agoCompare

[ Source](https://github.com/sistemas-eel/sso-client)[ Packagist](https://packagist.org/packages/sistemas-eel/sso-client)[ Docs](https://github.com/sistemas-eel/sso-client)[ RSS](/packages/sistemas-eel-sso-client/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (5)Versions (2)Used By (0)

SSO Client PHP - Cliente OAuth2 para Portal de Sistemas
=======================================================

[](#sso-client-php---cliente-oauth2-para-portal-de-sistemas)

[![PHP Version](https://camo.githubusercontent.com/ac74d8ff2e4df115fb96d99406d8d933c0eefb87c0f19a7611b16d473fb14f94/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253545372e34253743253545382e302d626c75652e737667)](https://php.net)[![Laravel Version](https://camo.githubusercontent.com/9d8318d4805907bc2b39f2d3c8011c5f4b149a4917d85c6931fc1ac3abb9bd3f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2d253545382e30253743253545392e3025374325354531302e3025374325354531312e3025374325354531322e302d7265642e737667)](https://laravel.com)[![Guzzle Version](https://camo.githubusercontent.com/e1d5f02b52590965327629a5a6aaac8383e079743cfc8a564d8153b480de52e7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f67757a7a6c652d253545362e30253743253545372e302d6f72616e67652e737667)](http://docs.guzzlephp.org)[![License](https://camo.githubusercontent.com/8bb50fd2278f18fc326bf71f6e88ca8f884f72f179d3e555e20ed30157190d0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e2e737667)](LICENSE)

Cliente OAuth2 para integração com o Portal de Sistemas. Funciona com **Laravel 8+** e **PHP legado 7.4+**.

Funcionalidades
---------------

[](#funcionalidades)

- **Autenticação OAuth2** - Authorization Code Flow completo
- **Gerenciamento de Tokens** - Access token, refresh token e expiração
- **Dados do Usuário** - Obtém informações do usuário autenticado
- **Logout Backchannel** - Suporte a logout global via webhook
- **Validação HMAC-SHA256** - Segurança para webhooks
- **Framework-Agnóstico** - Funciona com Laravel ou PHP legado
- **SSL Configurável** - Suporte a verificação SSL e CA bundles personalizados

Requisitos
----------

[](#requisitos)

### Core (Obrigatório)

[](#core-obrigatório)

- PHP 7.4 ou superior
- Guzzle 6.0 ou 7.0

### Opcional

[](#opcional)

- **Laravel**: ^8.0, ^9.0, ^10.0, ^11.0, ^12.0 (para integração automática)

Instalação
----------

[](#instalação)

```
composer require sistemas-eel/sso-client
```

Documentação Rápida
-------------------

[](#documentação-rápida)

### Opção 1: Laravel (Integração Automática)

[](#opção-1-laravel-integração-automática)

#### 1. Publicar Configuração

[](#1-publicar-configuração)

```
php artisan vendor:publish --tag=sso-client-config
```

#### 2. Configurar Variáveis de Ambiente

[](#2-configurar-variáveis-de-ambiente)

```
SSO_SERVER_URL=https://portalsistemas.unidade.usp.br/portal-sistemas
SSO_CLIENT_ID=seu_client_id
SSO_CLIENT_SECRET=seu_client_secret
SSO_REDIRECT_URI=https://seu-sistema.com.br/sso/callback
SSO_WEBHOOK_SECRET=seu_webhook_secret
SSO_VERIFY_SSL=true
SSO_SYNC_PERMISSIONS=true
```

#### 3. Rotas Disponíveis

[](#3-rotas-disponíveis)

A biblioteca registra automaticamente:

RotaNomeDescrição`GET /login``login`Rota padrão de login do Laravel apontando para o SSO`GET /logout``logout`Rota padrão de logout do Laravel apontando para o logout local da biblioteca`GET /sso/callback``sso.callback`Processa callback OAuth`POST /api/sso/webhook-logout``sso.webhook-logout`Webhook logout backchannelO middleware `auth` do Laravel passa a redirecionar automaticamente para essa rota `login`, e a aplicação pode usar a rota `logout` para encerrar a sessão local pelo fluxo da biblioteca.

Se a aplicação já tiver uma autenticação própria, é possível desabilitar esse comportamento:

```
SSO_LOGIN_ROUTE_ENABLED=false
SSO_LOGOUT_ROUTE_ENABLED=false
```

Se outra biblioteca ou a própria aplicação já registrar a rota `login` ou `logout`, a rota desta biblioteca pode não prevalecer, pois a ordem de carregamento dos providers afeta qual definição fica ativa no fim. Nesses casos, se você quiser que o login e o logout usem o fluxo desta biblioteca, sobrescreva manualmente as rotas no `routes/web.php` da aplicação:

```
