bybrand/oauth2-microsoft

Microsoft Provider for PHP League's OAuth 2.0 Client

Maintainers

Package info

github.com/bybrand/oauth2-microsoft

pkg:composer/bybrand/oauth2-microsoft

Statistics

Installs: 7

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.2 2026-03-23 23:08 UTC

This package is auto-updated.

Last update: 2026-03-23 23:09:04 UTC


README

This package provides Microsoft OAuth 2.0 support (v2.0 endpoints) for the PHP League's OAuth 2.0 Client.

Installation

composer require bybrand/oauth2-microsoft

Usage

use Bybrand\OAuth2\Client\Provider\Microsoft;
use League\OAuth2\Client\Provider\Exception\IdentityProviderException;

$provider = new Microsoft([
    'clientId'     => 'your-client-id',
    'clientSecret' => 'your-client-secret',
    'redirectUri'  => 'your-redirect-uri',
    'tenant'       => 'common', // common | organizations | consumers | tenant-id
]);

$params = $_GET;

if (!isset($params['code']) || empty($params['code'])) {
    $authorizationUrl = $provider->getAuthorizationUrl();
    $_SESSION['oauth2state'] = $provider->getState();

    header('Location: ' . $authorizationUrl);
    exit;
}

if (empty($params['state']) || ($params['state'] !== $_SESSION['oauth2state'])) {
    unset($_SESSION['oauth2state']);
    exit('Invalid state');
}

try {
    $token = $provider->getAccessToken('authorization_code', [
        'code' => $params['code']
    ]);

    $user = $provider->getResourceOwner($token);

    $id = $user->getId();
    $name = $user->getName();
    $email = $user->getEmail();
} catch (IdentityProviderException $e) {
    // Handle token/user request errors.
}

License

MIT.