aboutsummaryrefslogtreecommitdiff
path: root/models/cookies.php
diff options
context:
space:
mode:
Diffstat (limited to 'models/cookies.php')
-rw-r--r--models/cookies.php30
1 files changed, 30 insertions, 0 deletions
diff --git a/models/cookies.php b/models/cookies.php
new file mode 100644
index 0000000..8a7ea42
--- /dev/null
+++ b/models/cookies.php
@@ -0,0 +1,30 @@
+<?php
+namespace Database;
+use PDO;
+
+class Cookie extends Table {
+ public $UID;
+ public $Token;
+ public $Expires;
+
+ static function create(string $UID) : string {
+ $Token = uuidv4();
+ Table::_create(
+ "Cookies",
+ "(UID, Token, Expires)",
+ "(\"$UID\", \"$Token\", NOW() + INTERVAL 30 DAY)",
+ );
+ return $Token;
+ }
+}
+
+// Taken from https://stackoverflow.com/a/15875555
+function uuidv4()
+{
+ $data = random_bytes(16);
+
+ $data[6] = chr(ord($data[6]) & 0x0f | 0x40); // set version to 0100
+ $data[8] = chr(ord($data[8]) & 0x3f | 0x80); // set bits 6-7 to 10
+
+ return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
+}