PHPackages                             melhorenvio/auth-sdk-php - 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. melhorenvio/auth-sdk-php

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

melhorenvio/auth-sdk-php
========================

1.1.1(3y ago)26.8k↓14.6%2[1 issues](https://github.com/melhorenvio/auth-sdk-php/issues)MITPHPPHP ^7.4|^8.0|^8.1

Since Feb 25Pushed 2y ago8 watchersCompare

[ Source](https://github.com/melhorenvio/auth-sdk-php)[ Packagist](https://packagist.org/packages/melhorenvio/auth-sdk-php)[ Docs](https://github.com/melhorenvio/sdk-php-auth)[ RSS](/packages/melhorenvio-auth-sdk-php/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (2)Versions (7)Used By (0)

Auth SDK - Serviço de autorização do Melhor Envio.
==================================================

[](#auth-sdk---serviço-de-autorização-do-melhor-envio)

[![Latest Version on Packagist](https://camo.githubusercontent.com/b8030f937b768c66803a6f87fb3332d835e583b2a6aa11383fe383349447b91b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d656c686f72656e76696f2f736869706d656e742d73646b2d7068702e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/melhorenvio/shipment-sdk-php)[![Build Status](https://camo.githubusercontent.com/1ad02307349486d3ab5883d6db6d849cd658e7893266b9190d64663c678f2ab4/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6d656c686f72656e76696f2f736869706d656e742d73646b2d7068702f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/melhorenvio/shipment-sdk-php)[![Quality Score](https://camo.githubusercontent.com/d2c74f940826fe9189686f27727397538f1b141a3124afe1832116f0589f3624/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f6d656c686f72656e76696f2f736869706d656e742d73646b2d7068702e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/melhorenvio/shipment-sdk-php)[![Total Downloads](https://camo.githubusercontent.com/835647076c52c859bd88fa7312f46e5f08f7bf5299ff3d0c1d1d4ceaa9e5956c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d656c686f72656e76696f2f736869706d656e742d73646b2d7068702e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/melhorenvio/shipment-sdk-php)

Agora você pode incluir o processo de autorização do Melhor Envio no seu projeto de e-commerce de forma rápida e simples.

Índice
------

[](#índice)

- [Instalação](#instala%C3%A7%C3%A3o)
- [Cofiguração Inicial](#configura%C3%A7%C3%A3o-inicial)
- [Exemplos de uso](#exemplos-de-uso)
    - [Gerando o Access Token](#gerando-o-access-token)
    - [Refresh Token](#refresh-token)
- [Testes](##Testes)
- [Changelog](##Changelog)
- [Contribuindo](##Contribuindo)
- [Segurança](##Seguran%C3%A7a)
- [Créditos](##Cr%C3%A9ditos)
- [Licença](##Licen%C3%A7a)

Dependências
------------

[](#dependências)

### require

[](#require)

- PHP &gt;= 7.4
- Ext-json = \*
- Guzzlehttp/guzzle &gt;= 7.0

### require-dev

[](#require-dev)

- phpunit/phpunit &gt;= 9.5

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

[](#instalação)

Você pode instalar o pacote via composer:

```
composer require melhorenvio/auth-sdk-php
```

Configuração inicial
--------------------

[](#configuração-inicial)

Logo após a instalação concluída, você irá preparar os dados a serem passados como parâmetro para a classe **OAuth**, lembrando que esses dados são os mesmos que são gerados por você no site do Melhor Envio na criação do aplicativo.

Se você ainda não fez esse passo, basta acessar .

```
$appData = [
    'client_id' => 'your-client-id',
    'client_secret' => 'your-client-secret',
    'redirect_uri' => 'your-redirect-uri'
];
```

Em seguida, você instanciará a classe **OAuth** passando os parâmetros que você recebe acima.

```
$provider = new OAuth2($appData['client_id'], $appData['client_secret'], $appData['redirect_uri']);
```

Exemplos de uso
---------------

[](#exemplos-de-uso)

Uma vez a classe OAuth estando estanciada, você irá informar os escopos que serão necessários para a sua aplicação utilizando o método `setScopes()`, podendo ser um ou vários. Scopes são as permissões para as ações que o usuário pode ter com o token gerado, por exemplo, ver pedidos, ver carrinho de compras, enviar pedidos, etc.

Lembrando que os escopos estão disponíveis para consulta na documentação da API do Melhor Envio, neste link:

Logo em seguida, faça o redirecionamento para URL retornada pelo método `getAuthorizationUrl()`.

```
$provider->setScopes('shipping-calculate');
header("Location: {$provider->getAuthorizationUrl()}");
exit;
```

Visualizando Scopes utilizados
------------------------------

[](#visualizando-scopes-utilizados)

Para visualizar o scopes utilizados, ou seja, as permissões de acesso para token que será gerado, basta utilizar o método `getScopes()`, esse método irá retornar um array com os scopes utilizados.

```
$authData[] = $provider->getScopes();
```

Gerando o Access Token
----------------------

[](#gerando-o-access-token)

Bom até aqui vimos como instanciar a classe OAuth, escolher os escopos a serem utilizados e montar a URL, porém quais são os próximos passos?

Temos o seguinte cenário, onde você irá utilizar o método `getAccessToken()`, para obter a resposta com as informações das credenciais necessárias para você ter êxito na realização de requisições para a API do Melhor Envio.

```
$authData[] = $provider->getAccessToken($_GET['code'], $_GET['state']);
```

Um exemplo da resposta dessas informações:

```
Array
(
    [0] => Array
        (
            [token_type] => Bearer
            [expires_in] => your-token-expiration-timestamp
            [access_token] => your-token
            [refresh_token] => your-refresh-token
        )

)
```

Definindo URL de callback
-------------------------

[](#definindo-url-de-callback)

Após o usuário confirmar a autorização de uso de sua conta Melhor Envio, a API do Melhor Envio irá realizar uma request para a sua aplicação contendo o code necessário para a solicitação de token. Para definir essa URL de callback basta utilizar o método `setRedirectUri()` passando com parâmetro a URL que será utilizada, lembrando que essa URL precisa existir e ser válida, e deve ser a mesma URL informada no cadastro de aplicativo dentro da plataforma do Melhor Envio.

```
$provider->setRedirectUri('http://foo.com.br/callback');
```

Visualizar URL de callback
--------------------------

[](#visualizar-url-de-callback)

Para visualizar qual URL de callback o SDK está utilizando, basta utilizar o método `getRedirectUri()`.

```
$provider->getRedirectUri();
```

Refresh Token
-------------

[](#refresh-token)

Após 30 dias o seu token irá expirar. Mas não se preocupe, o pacote oferece o método de refresh token para que você deixe sua aplicação preparada para quando isso acontecer.

Como essas informações foram geradas anteriormente, você irá utilizar o método `refreshToken()` passando como parâmetro o dado respectivo, tendo como resposta um novo token.

```
$newAuthData = $provider->refreshToken($authData['refresh_token']);
```

Visualizar Endpoint
-------------------

[](#visualizar-endpoint)

Para visualizar o endpoint usado no SDK para utilizar o método `getEndpoint()`

```
$newAuthData = $provider->getEndpoint();
```

Ambientes
---------

[](#ambientes)

O SDK funciona em ambos ambientes do Melhor Envio, Produção e Sandbox, para isso funcionar de forma adequeada, é necessário informar qual ambiente está sendo utilizado, por padrão o ambiente usado é o ambiente de sandbox, para fazer a troca de ambiente basta utilizar o método `setEnvironment()` passando como parâmetro uma string informando o ambiente (sandbox ou production).

```
$newAuthData = $provider->setEnvironment('production');
```

### Testing

[](#testing)

```
composer test
```

### Changelog

[](#changelog)

Consulte [CHANGELOG](CHANGELOG.md) para mais informações de alterações recentes.

Contribuindo
------------

[](#contribuindo)

Consulte [CONTRIBUTING](CONTRIBUTING.md) para mais detalhes.

### Segurança

[](#segurança)

Se você descobrir algum problema de segurança, por favor, envie um e-mail para , ao invés de usar um *issue tracker*.

Créditos
--------

[](#créditos)

- [Rodrigo Silveira](https://github.com/rodriigogs)
- [Marçal Pizzi](https://github.com/marcalpizzi)
- [Pedro Barros](https://github.com/pedrobarros05)
- [Vinícius Tessmann](https://github.com/viniciustessmann)
- [Thyago Santos](https://github.com/tsantos8080)

Licença
-------

[](#licença)

Melhor Envio. Consulte [Arquivo de lincença](LICENSE.md) para mais informações.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance10

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 75% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~124 days

Total

3

Last Release

1295d ago

PHP version history (2 changes)v1.0.3PHP ^7.1

1.1.0PHP ^7.4|^8.0|^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/f2312644ab5c9636934786ee1abdf291a33b656214113d2f7bda1a2129416e13?d=identicon)[Melhor Envio](/maintainers/Melhor%20Envio)

---

Top Contributors

[![tsantos8080](https://avatars.githubusercontent.com/u/47419791?v=4)](https://github.com/tsantos8080 "tsantos8080 (36 commits)")[![RodriigoGS](https://avatars.githubusercontent.com/u/16062022?v=4)](https://github.com/RodriigoGS "RodriigoGS (5 commits)")[![viniciustessmann](https://avatars.githubusercontent.com/u/8430333?v=4)](https://github.com/viniciustessmann "viniciustessmann (4 commits)")[![pedrobarrosme05](https://avatars.githubusercontent.com/u/97195855?v=4)](https://github.com/pedrobarrosme05 "pedrobarrosme05 (2 commits)")[![marcalpizzi](https://avatars.githubusercontent.com/u/43763142?v=4)](https://github.com/marcalpizzi "marcalpizzi (1 commits)")

---

Tags

api-docsintegracoestecnologiaphpauthmelhorenvioauth-sdk-php

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/melhorenvio-auth-sdk-php/health.svg)

```
[![Health](https://phpackages.com/badges/melhorenvio-auth-sdk-php/health.svg)](https://phpackages.com/packages/melhorenvio-auth-sdk-php)
```

###  Alternatives

[cartalyst/sentinel

PHP 8.2+ Fully-featured Authentication &amp; Authorization System

1.6k2.7M72](/packages/cartalyst-sentinel)[ellaisys/aws-cognito

AWS Cognito package that allows Auth and other related features using the AWS SDK for PHP

120220.7k1](/packages/ellaisys-aws-cognito)[kinde-oss/kinde-auth-php

Kinde PHP SDK for authentication

2369.5k3](/packages/kinde-oss-kinde-auth-php)[hyperf-ext/jwt

The Hyperf JWT package.

53134.9k2](/packages/hyperf-ext-jwt)[hyperf-ext/auth

The Hyperf Auth package.

2376.2k3](/packages/hyperf-ext-auth)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
