commandstring/discordoauth

An easier way to use discord oauth in PHP

v1.0.1 2023-01-07 07:04 UTC

This package is auto-updated.

Last update: 2024-10-26 11:40:30 UTC


README

An easier way to get discord OAuth tokens

Requirements

  • PHP 8.1=<
  • Composer 2
  • Registered Discord application

Getting Token

You will need to retrieve your discord application's client_id and client_secret. After retrieving those you can instantiate the \CommandString\DiscordOAuth\OAuth class.

$OAuth = (new OAuth("http://localhost:8000", $client_id, $client_secret));

You will then need to define scopes by using the addScopes method. You can either supply a scope string or supply a Scopes enum.

$OAuth->addScopes(Scopes::IDENTIFY);

Afterwards you can then generate a url for the authorize endpoint by invoking the buildAuthorizeUrl method.

$authUrl - $OAuth->buildAuthorizeUrl();

After the client is redirected you can then use the getToken method for retrieving the access token.

$tokenRes = $OAuth->getToken($_GET["code"]);

You can supply your own \React\Http\Browser in the second argument of this method

$tokenRes will be an stdClass with the following structure.

{
    "access_token": "<string>",
    "expires_in": "<int>",
    "refresh_token": "<string>",
    "scope": "<string>",
    "token_type": "<string>"
}

You can also refresh your token with the refreshToken method...

$newTokenRes = $OAuth->refreshToken($tokenRes->refresh_token);

Getting user

$user = User::getWithToken($tokenRes->token_type, $tokenRes->access_token);

Note: All properties of the user are readonly.