kevslashnull/oauth2-discord

OAuth2 client for authenticating with the Discord API servers

v9.0 2022-08-19 14:22 UTC

This package is auto-updated.

Last update: 2024-05-19 18:19:58 UTC


README

Build Status

Enables PHP-based websites (such as Laravel ones) to use Discord as login and/or register system.

This repo is a fork of team-reflex/oauth2-discord. Team Reflex' package was last updated on Oct 7, 2016 and we at SiegeGG need an updated version. We'll possibly add more non-breaking features but will try to leave the package fully backwards compatible.

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

Installation

Run composer require kevslashnull/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="'.$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/52a9dsR');

	// 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.