bigpino67/oauth2-xblive

XBOX Live OAuth 2.0 Client Provider for The PHP League OAuth2-Client

1.0.0 2021-01-29 17:10 UTC

This package is not auto-updated.

Last update: 2024-05-04 03:51:52 UTC


README

This package provides Microsoft Live and XBOX Live OAuth 2.0 support for the PHP League's OAuth 2.0 Client.

Installation

To install, use composer:

composer require bigpino67/oauth2-xblive dev-master

Authorization Code Flow

require_once __DIR__ . '/vendor/autoload.php';


use BigPino67\OAuth2\XBLive\Client\Provider;
use BigPino67\OAuth2\XBLive\Client\Provider\Enum\XBLivePlatformEnum;
use BigPino67\OAuth2\XBLive\Client\Provider\Enum\XboxOneTitleEnum;

$provider = new BigPino67\OAuth2\XBLive\Client\Provider\XBLive([
    'clientId'          => '{YOUR_CLIENT_ID}',
    'clientSecret'      => '{YOUR_CLIENT_SECRET}',
    'redirectUri'       => '{YOUR_LOGIN_REDIRECT_URI}',
    'logoutRedirectUri' => '{YOUR_LOGOUT_REDIRECT_URI}',
]);

if(isset($_POST['code']) && isset($_POST['state']))
{
    if($_POST['state'] == $provider->getState())
    {
        $msaToken = $provider->GetAccessToken('authorization_code', [
            'scope' => $provider->scope,
            'code' => $_POST['code']
        ]);
		
        $xasuToken = $provider->getXasuToken($msaToken);
        $xstsToken = $provider->getXstsToken($xasuToken);
	
	$profilesProvider = new Provider\Profiles\ProfilesProvider($xstsToken);
	$profile = $profilesProvider->getLoggedUserProfile();
	
	$achivementsProvider = new Provider\Achievements\AchievementsProvider($xstsToken);
	$sotAchievements = $achivementsProvider->getAchievements(XboxOneTitleEnum::SeaOfThieves);
		
        echo "<pre>";
        print_r($sotAchievements);
        echo "<pre>";
    } 
    else
    {
        echo 'Invalid state';
    }
} 
else
{
    echo '<a href="'.$provider->getBaseAuthorizationUrl().'">Login</a>';
}