New implementation of cookie

This commit is contained in:
Roman Kelesidis 2023-03-05 15:15:39 +07:00
parent 916f4e0178
commit e6e85db062
3 changed files with 23 additions and 7 deletions

View file

@ -1,5 +1,6 @@
{ {
"require": { "require": {
"symfony/polyfill": "*" "symfony/polyfill": "*",
"delight-im/cookie": "^3.4"
} }
} }

View file

@ -68,6 +68,7 @@
'iptables' => 'iptables_block', // Файл правил для FireWall (блокировка на уровне оборудования) (/root/_FILE_) 'iptables' => 'iptables_block', // Файл правил для FireWall (блокировка на уровне оборудования) (/root/_FILE_)
'cron_key' => 'CRONKEY', // Ключ для cron.php 'cron_key' => 'CRONKEY', // Ключ для cron.php
'cron_taskset' => '0', // Ядро, на котором запускать cron.php (уставновить отличный от нуля, если на VDS больше 1 ядра/потока) 'cron_taskset' => '0', // Ядро, на котором запускать cron.php (уставновить отличный от нуля, если на VDS больше 1 ядра/потока)
'cookie_same_site' => 'Lax', // Lax, None, Strict | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
// Кеш (кол-во секунд) // Кеш (кол-во секунд)
'mcache_server_mon' => 2, // Мониторинг (онлайн, название, карта) 'mcache_server_mon' => 2, // Мониторинг (онлайн, название, карта)

View file

@ -4,6 +4,18 @@
class sys class sys
{ {
public static function isSecure() {
$is_secure = false;
if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on') {
$is_secure = true;
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') {
$is_secure = true;
}
return $is_secure;
}
public static function url($all = true) public static function url($all = true)
{ {
if($_SERVER['REQUEST_URI'] == '/') if($_SERVER['REQUEST_URI'] == '/')
@ -427,11 +439,13 @@
return md5($passwd); return md5($passwd);
} }
public static function cookie($name, $value, $expires) public static function cookie($name, $value, $expires)
{ {
$expires = time() + ($expires * 86400); global $cfg;
setcookie($name, $value, $expires, "/", $_SERVER['HTTP_HOST'], true);
} $expires = time() + ($expires * 86400);
\Delight\Cookie\Cookie::setcookie($name, $value, $expires, '/', $cfg['url'], self::isSecure(), true, $cfg['cookie_same_site']);
}
public static function auth() public static function auth()
{ {