`setCookie()`, который предоставляет Slim Framework, не будет работать, если я использую `exit()` после него
Мне нужно использовать ajax-запрос для входа в систему. Вот функция, к которой идет запрос:
function loginAdmin() {
$app = \Slim\Slim::getInstance();
if (auth()) {
$app->setCookie('admin', TRUE);
exit(TRUE);
}
exit(NULL);
}
И я обработаю ответ ajax, чтобы увидеть, правда ли это. Но печенье не будет установлено. Если я удалю exit(TRUE)
печенье может быть установлено.
Я прочитал исходный код Slim, setCookie()
вызовы функций \Slim\Http\Cookies::setCookie()
, который устанавливает ключ и значение в $data
член. Но я не уверен, когда куки отправляются.
Но я до сих пор не знаю, как это exit
функция влияет setCookie
функция.
1 ответ
Решение
Вы не можете отправить ответ, используя exit()
, Вам следует echo()
ответ в маршруте. Например что-то вроде:
function loginAdmin() {
$app = \Slim\Slim::getInstance();
if (auth()) {
$app->setCookie('admin', TRUE);
return 1;
}
return 0;
}
$app->get('/foo', function {
echo loginAdmin();
});
Приведенный выше код не является хорошим способом проверки подлинности, но он показывает суть.