PHP - сессии и REST

0

Мне нужна помощь в понимании того, что я делаю неправильно. Я создаю RESTful API для внутреннего использования. У меня есть 2 конечных точки -/login и /logout. При входе в систему я проверяю ввод пользователя и создаю сеанс - работает хорошо. При выходе из системы я хотел бы уничтожить сеанс, но он говорит: " session_destroy(): попытка уничтожить неинициализированный сеанс в... "

Вот код:

Авторизоваться:

$api->post('/login', function () {
if(some validations)
{
    session_name('lalala');
    session_start();
    session_regenerate_id(true);
    setcookie(session_name(), session_id(), 0, '/', 'xxx.xxx.xxx.xxx', false, true);
}
});

Выйти:

$api->post('/logout', function () {
session_unset();
session_destroy(); // here it fails

setcookie('lalala', "", 1);
setcookie('lalala', false);
unset($_COOKIE);

});

Обратите внимание, что я использую IP-адрес вместо имени домена. Я не верю, что есть разница, но для вашего внимания.

Не могли бы вы помочь мне понять, что здесь не так?

  • 2
    Добавить session_start(); в начале файла logout.php
  • 0
    Для чего вам нужны сеансы?
Показать ещё 2 комментария
Теги:
cookies
session
session-cookies

1 ответ

2

Вы должны позвонить:

session_name('lalala');
session_start();

перед session_unset()

Вместо setcookie(...) используйте session_set_cookie_params() перед session_start()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню