PHPackages                             knox/msgraph - 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. knox/msgraph

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

knox/msgraph
============

Microsoft Graph Provider for Laravel Socialite

v1.2(9y ago)220MITPHPPHP ^5.6 || ^7.0

Since Oct 5Pushed 1y ago1 watchersCompare

[ Source](https://github.com/knox2/MSGraph)[ Packagist](https://packagist.org/packages/knox/msgraph)[ RSS](/packages/knox-msgraph/feed)WikiDiscussions master Synced 2d ago

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

Microsoft Graph OAuth2 Provider for Laravel Socialite
=====================================================

[](#microsoft-graph-oauth2-provider-for-laravel-socialite)

Inspired by [](https://github.com/SocialiteProviders/Microsoft-Azure)

Documentation
-------------

[](#documentation)

\###INSTALLATION

\####1. COMPOSER

> This assumes that you have composer installed globally

`composer require knox2/msgraph`

\####2. SERVICE PROVIDER

> Remove Laravel\\Socialite\\SocialiteServiceProvider from your providers\[\] array in config\\app.php if you have added it already.

> Add \\SocialiteProviders\\Manager\\ServiceProvider::class to your providers\[\] array in config\\app.php.

For example:

```
'providers' => [
    // remove 'Laravel\Socialite\SocialiteServiceProvider',
    \SocialiteProviders\Manager\ServiceProvider::class, // add
];

```

> Note: If you would like to use the Socialite Facade, you need to install it.

\####3. ADD THE EVENT AND LISTENERS

> Add SocialiteProviders\\Manager\\SocialiteWasCalled event to your listen\[\] array in &lt;app\_name&gt;/Providers/EventServiceProvider.

> Add your listeners (i.e. the ones from the providers) to the SocialiteProviders\\Manager\\SocialiteWasCalled\[\] that you just created.

The listener that you add for this provider is

```
'Knox\MSGraph\MSGraphExtendSocialite@handle'

```

> Note: You do not need to add anything for the built-in socialite providers unless you override them with your own providers.

For example:

```
/**
 * The event handler mappings for the application.
 *
 * @var array
 */
protected $listen = [
    \SocialiteProviders\Manager\SocialiteWasCalled::class => [
        'Knox\MSGraph\MSGraphExtendSocialite@handle',
    ],
];

```

\####4. ENVIRONMENT VARIABLES

add environment values to your .env

```
// other values above
MSGRAPH_KEY=yourkeyfortheservice
MSGRAPH_SECRET=yoursecretfortheservice
MSGRAPH_REDIRECT_URI=https://example.com/login

```

add to config/services.php

```

'msgraph' => [

	'client_id' => env('MSGRAPH_KEY'),

    'client_secret' => env('MSGRAPH_SECRET'),

    'redirect' => env('MSGRAPH_REDIRECT_URI'),

],

```

\###REFERENCE

\####USAGE

You should now be able to use it like you would regularly use Socialite (assuming you have the facade installed):

```
return Socialite::with('msgraph')->redirect();

```

\####LUMEN SUPPORT

You can use Socialite providers with Lumen. Just make sure that you have facade support turned on and that you follow the setup directions properly.

> Note: If you are using this with Lumen, all providers will automatically be stateless since Lumen does not keep track of state.

> Also, configs cannot be parsed from the services\[\] in Lumen. You can only set the values in the .env file as shown exactly in this document. If needed, you can also override a config (shown below).

\####STATELESS

You can set whether or not you want to use the provider as stateless. Remember that the OAuth provider (Twitter, Tumblr, etc) must support whatever option you choose. Note: If you are using this with Lumen, all providers will automatically be stateless since Lumen does not keep track of state.

> to turn off stateless

```
return Socialite::with('msgraph')->stateless(false)->redirect();

```

> to use stateless

```
return Socialite::with('msgraph')->stateless()->redirect();

```

\####OVERRIDING A CONFIG

If you need to override the provider’s environment or config variables dynamically anywhere in your application, you may use the following:

```

$clientId = "secret";
$clientSecret = "secret";
$redirectUrl = "http://yourdomain.com/api/redirect";
$additionalProviderConfig = ['site' => 'meta.stackoverflow.com'];
$config = new \SocialiteProviders\Manager\Config($clientId, $clientSecret, $redirectUrl, $additionalProviderConfig);
return Socialite::with('msgraph')->setConfig($config)->redirect();

```

\####RETRIEVING THE ACCESS TOKEN RESPONSE BODY

Laravel Socialite by default only allows access to the access\_token. Which can be accessed via the

```
\Laravel\Socialite\User->token

```

public property. Sometimes you need access to the whole response body which may contain items such as a refresh\_token.

You can get the access token response body, after you called the user() method in Socialite, by accessing the property

```
$user->accessTokenResponseBody

```

```
$user = Socialite::driver('msgraph')->user();

$accessTokenResponseBody = $user->accessTokenResponseBody;

```

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance31

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 90% 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 ~0 days

Total

4

Last Release

3556d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/16401?v=4)[Mickey](/maintainers/knox)[@knox](https://github.com/knox)

---

Top Contributors

[![knox2](https://avatars.githubusercontent.com/u/2101866?v=4)](https://github.com/knox2 "knox2 (9 commits)")[![draperstudio](https://avatars.githubusercontent.com/u/257012927?v=4)](https://github.com/draperstudio "draperstudio (1 commits)")

### Embed Badge

![Health badge](/badges/knox-msgraph/health.svg)

```
[![Health](https://phpackages.com/badges/knox-msgraph/health.svg)](https://phpackages.com/packages/knox-msgraph)
```

###  Alternatives

[socialiteproviders/apple

Apple OAuth2 Provider for Laravel Socialite

629.5M14](/packages/socialiteproviders-apple)[socialiteproviders/microsoft

Microsoft OAuth2 Provider for Laravel Socialite

347.3M22](/packages/socialiteproviders-microsoft)[socialiteproviders/microsoft-azure

Microsoft Azure OAuth2 Provider for Laravel Socialite

597.2M26](/packages/socialiteproviders-microsoft-azure)[socialiteproviders/instagram

Instagram OAuth2 Provider for Laravel Socialite

402.0M5](/packages/socialiteproviders-instagram)[socialiteproviders/saml2

SAML2 Service Provider for Laravel Socialite

172.6M3](/packages/socialiteproviders-saml2)[socialiteproviders/laravelpassport

LaravelPassport OAuth2 Provider for Laravel Socialite

631.4M8](/packages/socialiteproviders-laravelpassport)

PHPackages © 2026

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