Доработка сессий
This commit is contained in:
@@ -24,7 +24,7 @@ if ($method === 'POST') {
|
||||
RestApi::response($result);
|
||||
}
|
||||
|
||||
// Выход (удаление всех сессий)
|
||||
// Выход (только текущая сессия)
|
||||
if ($action === 'logout') {
|
||||
$account = new Account();
|
||||
$keycookies = $data['keycookies'] ?? $_COOKIE['session'] ?? null;
|
||||
@@ -32,6 +32,14 @@ if ($method === 'POST') {
|
||||
RestApi::response($result);
|
||||
}
|
||||
|
||||
// Выход со всех устройств
|
||||
if ($action === 'logout_all') {
|
||||
$account = new Account();
|
||||
$keycookies = $data['keycookies'] ?? $_COOKIE['session'] ?? null;
|
||||
$result = $account->logout_all($keycookies);
|
||||
RestApi::response($result);
|
||||
}
|
||||
|
||||
// Создание пользователя
|
||||
if ($action === 'create_user') {
|
||||
$account = new Account();
|
||||
|
||||
@@ -196,7 +196,7 @@ class Account extends BaseEntity {
|
||||
];
|
||||
}
|
||||
|
||||
// Удаление всех сессий пользователя (logout)
|
||||
// Удаление только текущей сессии (logout)
|
||||
public function logout($keycookies) {
|
||||
// Проверяем, что сессия не пустая
|
||||
if (!$keycookies) {
|
||||
@@ -204,6 +204,28 @@ class Account extends BaseEntity {
|
||||
return $this->getErrors();
|
||||
}
|
||||
|
||||
// Удаляем только текущую сессию
|
||||
Database::delete($this->db_name_session, [
|
||||
'keycookies' => $keycookies
|
||||
]);
|
||||
|
||||
// Удаляем cookie
|
||||
setcookie('session', '', [
|
||||
'expires' => time() - 3600,
|
||||
'path' => '/'
|
||||
]);
|
||||
|
||||
return ['success' => true];
|
||||
}
|
||||
|
||||
// Удаление всех сессий пользователя (logout со всех устройств)
|
||||
public function logout_all($keycookies) {
|
||||
// Проверяем, что сессия не пустая
|
||||
if (!$keycookies) {
|
||||
$this->addError('session', 'Сессия не указана');
|
||||
return $this->getErrors();
|
||||
}
|
||||
|
||||
// Получаем сессию чтобы узнать id пользователя
|
||||
$session = Database::get($this->db_name_session, ['id_accounts'], [
|
||||
'keycookies' => $keycookies
|
||||
|
||||
Reference in New Issue
Block a user