所以我有一个非常基本的 Laravel 登录脚本
$email = Input::get('email');
$password = Input::get('password');
if(Auth::attempt(array('Email'=>$email, 'password'=>$password), true)){
return Response::json(array('success' => true,'logged_in'=>Auth::check() ));
}
我正在使用有效的电子邮件和密码登录。我已将“logged_in”放入响应数组中作为测试,尝试后它返回 true。但是,响应中不会返回“laravel_session”cookie,并且后续调用不会看到用户已登录。这只发生在我的生产服务器上,我的本地环境和测试环境都可以正常工作。
另外,我注意到 Response::json 返回的是 text/html MIME 类型,而不是 application/json。我不确定是什么原因造成的,所以我只是将 jQuery.ajax dataType 设置为“json”来解决它。这也只发生在我的生产服务器上。我对此完全没有想法,非常感谢您的帮助。
最佳答案
在我的一个配置文件深处,有人(可能是我)在 <?
之前插入了一个空格。 PHP 文件的开头。这是在设置任何 header 之前,因此不允许更改它们(意味着无法设置 cookie),因为数据已经写入输出流。因此,如果您正在寻找为什么会发生这种情况,请务必找到它。
关于php - Laravel 身份验证 session cookie 未发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28774398/