![]() |
|
Discord Login Script - Printable Version +- LCKB (https://lckb.dev/forum) +-- Forum: ** OLD LCKB DATABASE ** (https://lckb.dev/forum/forumdisplay.php?fid=109) +--- Forum: Website Scripting & Security (https://lckb.dev/forum/forumdisplay.php?fid=197) +---- Forum: Website Releases (https://lckb.dev/forum/forumdisplay.php?fid=135) +----- Forum: Ep4 Websites (https://lckb.dev/forum/forumdisplay.php?fid=126) +----- Thread: Discord Login Script (/showthread.php?tid=2241) |
- Sutz - 01-11-2021 This is a basic Oauth 2 for discord, you will need to know php to get it to work on your sites <?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); ini_set('max_execution_time', 300); //300 seconds = 5 minutes. In case if your CURL is slow and is loading too much (Can be IPv6 problem) error_reporting(E_ALL); // SETTINGS ---------------------------------- define('OAUTH2_CLIENT_ID', 'Your client Id'); //Your client Id define('OAUTH2_CLIENT_SECRET', 'Your secret client code'); //Your secret client code $Yoursite = 'YOUR WEBSITE LINK'; //Your website link //-------------------------------------------- $authorizeURL = 'https://discordapp.com/api/oauth2/authorize'; $tokenURL = 'https://discordapp.com/api/oauth2/token'; $apiURLBase = 'https://discordapp.com/api/users/@me'; session_start(); // Start the login process by sending the user to Discord's authorization page if(get('action') == 'login') { $params = array( 'client_id' => OAUTH2_CLIENT_ID, 'redirect_uri' => $Yoursite, 'response_type' => 'code', 'scope' => 'identify guilds' ); // Redirect the user to Discord's authorization page header('Location: https://discordapp.com/api/oauth2/authorize' . '?' . http_build_query($params)); die(); } // When Discord redirects the user back here, there will be a "code" and "state" parameter in the query string if(get('code')) { // Exchange the auth code for a token $token = apiRequest($tokenURL, array( "grant_type" => "authorization_code", 'client_id' => OAUTH2_CLIENT_ID, 'client_secret' => OAUTH2_CLIENT_SECRET, 'redirect_uri' => $Yoursite, 'code' => get('code') )); $logout_token = $token->access_token; $_SESSION['access_token'] = $token->access_token; header('Location: ' . $_SERVER['PHP_SELF']); } echo "Welcome to the new Discord login<br /><br />"; if(session('access_token')) { $user = apiRequest($apiURLBase); echo '<h3>Logged In</h3>'; echo '<h4>Welcome, ' . $user->id . '</h4>'; echo '<img src="https://cdn.discordapp.com/avatars/'.$user->id.'/'.$user->avatar.'.png"><br /><br />'; echo '<pre>'; print_r($user); echo '</pre>'; } else { echo '<h3>Not logged in</h3>'; echo '<p><a href="?action=login">Log In</a></p>'; } function apiRequest($url, $post=FALSE, $headers=array()) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $response = curl_exec($ch); if($post) curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post)); $headers[] = 'Accept: application/json'; if(session('access_token')) $headers[] = 'Authorization: Bearer ' . session('access_token'); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); return json_decode($response); } function get($key, $default=NULL) { return array_key_exists($key, $_GET) ? $_GET[$key] : $default; } function session($key, $default=NULL) { return array_key_exists($key, $_SESSION) ? $_SESSION[$key] : $default; } ?> - Sutz - 01-11-2021 You will need to create an app here too 2 |