CRSSWebsite/auth.php

49 lines
1.2 KiB
PHP
Raw Normal View History

2023-09-15 15:10:03 +00:00
<?php
2023-09-15 21:04:00 +00:00
global $discord, $mysql;
2023-09-15 15:10:03 +00:00
require_once "_config.php";
session_start();
if(isset($_GET['code'])) {
$res = $discord->validateCode($_GET['code']);
2023-09-15 15:25:33 +00:00
if(!$res['error']) {
$_SESSION['access_token'] = $res['access_token'];
$_SESSION['refresh_token'] = $res['refresh_token'];
$_SESSION['expires_in'] = $res['expires_in'];
2023-09-15 15:10:03 +00:00
2023-09-15 15:25:33 +00:00
$guilds = $discord->getGuilds($res['access_token']);
2023-09-15 15:10:03 +00:00
2023-09-15 15:25:33 +00:00
$guildIds = array();
foreach ($guilds as $guild) {
$guildIds[] = $guild['id'];
}
2024-04-01 17:10:19 +00:00
if(!in_array('1127731341283307520', $guildIds) || !in_array('1195393418151596032', $guildIds)) {
2023-09-15 15:10:03 +00:00
echo json_encode(array(
'error' => true,
2024-04-01 17:10:19 +00:00
'error_description' => 'You are not in any of CRSS\'s guilds.'
2023-09-15 15:10:03 +00:00
));
} else {
2023-09-15 15:25:33 +00:00
$_SESSION['user'] = $discord->getUser($res['access_token']);
2023-09-15 15:10:03 +00:00
2023-09-15 21:04:00 +00:00
$mysql->createUserRecord($_SESSION['user']);
2024-04-01 17:10:19 +00:00
if (isset($_GET['state'])) {
header('Location: ' . $_GET['state']);
} else {
header('Location: /');
}
2023-09-15 15:10:03 +00:00
}
} else {
echo json_encode($res);
}
} else {
echo json_encode(array(
'error' => true,
'error_description' => 'No code provided.'
));
}