我写了两条小测试路线(网络路线):
Route::get('/test/login', function (){
auth()->login(\App\User::find(1));
// dump('hello');
return response()->json(['msg'=>'login succeed!']);
});
Route::get('/test/me', function (){
return response()->json(auth()->user());
});
当我执行GET /test/login
然后执行GET /test/me
时,用户数据将按预期返回。
但是,如果我取消注释转储部分dump('hello');
,请按照与上述相同的顺序,为GET /test/me
获取空数据。< / p>
顺便说一下,我使用&#39;文件&#39;作为会话驱动程序。
我想知道为什么以及var_dump / dump / dd如何使auth() - &gt; login()无法正常工作?
答案 0 :(得分:0)
我找到了解释这个问题的答案。看到 laracasts-answer
发送一些要在浏览器中显示的内容后,您将无法再发送标题。 var_dump(dump或dd)将发送响应头(没有cookie),因此在使用cookie的响应之后不起作用,因为你不能再发送响应了。
我的案例中的登录问题最后是关于session / cookie,如果响应头中没有设置laravel_session
cookie,那么基于会话的会话和登录就无法正常工作。