我需要使用ajax请求来执行登录。这是请求的功能:
function loginAdmin() {
$app = \Slim\Slim::getInstance();
if (auth()) {
$app->setCookie('admin', TRUE);
exit(TRUE);
}
exit(NULL);
}
我会处理ajax响应以查看它是否属实。但是不会设置cookie。如果我删除exit(TRUE)
,则可以设置Cookie。
我已经阅读了Slim的源代码,setCookie()
函数调用\Slim\Http\Cookies::setCookie()
,它将键和值设置为$data
成员。但我不确定何时发送cookie。
但我仍然不知道exit
函数如何影响setCookie
函数。
答案 0 :(得分: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();
});
以上代码不是进行身份验证的好方法,但它显示了重点。