teamreflex / oauth2-discord

OAuth2 client for authenticating with the Discord API servers
MIT License
61 stars 26 forks source link

oauth2-discord

Build Status Coverage Status

Provides Discord OAuth 2.0 support for PHP League's OAuth 2.0 Client.

Installation

Run composer require team-reflex/oauth2-discord.

Usage

<?php

$provider = new \Discord\OAuth\Discord([
    'clientId'     => 'oauth-app-id',
    'clientSecret' => 'oauth-app-secret',
    'redirectUri'  => 'http://your.redirect.url',
]);

if (! isset($_GET['code'])) {
    echo '<a href="https://github.com/teamreflex/oauth2-discord/blob/master/'.$provider->getAuthorizationUrl().'">Login with Discord</a>';
} else {
    $token = $provider->getAccessToken('authorization_code', [
        'code' => $_GET['code'],
    ]);

    // Get the user object.
    $user = $provider->getResourceOwner($token);

    // Get the guilds and connections.
    $guilds = $user->guilds;
    $connections = $user->connections;

    // Accept an invite
    $invite = $user->acceptInvite('https://discord.gg/0SBTUU1wZTUo9F8v');

    // Get a refresh token
    $refresh = $provider->getAccessToken('refresh_token', [
        'refresh_token' => $getOldTokenFromMemory->getRefreshToken(),
    ]);

    // Store the new token.
}

Credits

License

This code is subject to the MIT license which can be found in the LICENSE file.