summaryrefslogtreecommitdiff
path: root/lib/users.php
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-10-26 18:07:02 +0500
committerilotterytea <iltsu@alright.party>2025-10-26 18:07:02 +0500
commita8a338599b3d891ee72a48a5f01f25c1ded31f21 (patch)
tree87551e161b5070da1ee87eecf4c0d9c5f4af3c47 /lib/users.php
parentd3baca2f2df52d78566024c26f694d1f26693b25 (diff)
feat: authenticate users
Diffstat (limited to 'lib/users.php')
-rw-r--r--lib/users.php32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/users.php b/lib/users.php
new file mode 100644
index 0000000..e454a72
--- /dev/null
+++ b/lib/users.php
@@ -0,0 +1,32 @@
+<?php
+include_once $_SERVER['DOCUMENT_ROOT'] . '/lib/config.php';
+
+function authenticate_user(): bool
+{
+ session_start();
+ if (!isset($_COOKIE['SECRET_TINYSOUNDS_KEY'])) {
+ unset($_SESSION['user']);
+ return false;
+ }
+
+ $db = new PDO(DB_URL, DB_USER, DB_PASS);
+
+ $stmt = $db->prepare('SELECT * FROM users WHERE token = ?');
+ $stmt->execute([$_COOKIE['SECRET_TINYSOUNDS_KEY']]);
+
+ $user = $stmt->fetch(PDO::FETCH_ASSOC) ?: null;
+
+ if (!$user) {
+ unset($_COOKIE['SECRET_TINYSOUNDS_KEY']);
+ unset($_SESSION['user']);
+ return false;
+ }
+
+ $stmt = $db->prepare('SELECT * FROM user_connections WHERE user_id = ?');
+ $stmt->execute([$user['id']]);
+
+ $user['connections'] = $stmt->fetchAll(PDO::FETCH_ASSOC);
+
+ $_SESSION['user'] = $user;
+ return true;
+} \ No newline at end of file