0
我记录了我的网站,访客用户和认证用户的请求,但后来我遇到了一个问题,如果用户登录和404异常踢在那种情况下,我的身份验证::用户()为空,Laravel v5.2将中间件从Web组移动到全局?
class LoggingMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return $next($request);
}
public function terminate($request, $response)
{
$info = [];
//$info = get everything i need from request and response.
$info['user_detail'] = Auth::user()->id;
var_dump(Auth::user());
dispatch(new LogRequests($info));
}
}
我做了什么,然后将StartSession中间件从web组移到全局中间件组。现在它工作正常。将Web组中的中间件移至全局网络可能会产生问题吗?
实际上,当内核开始处理请求时,首先运行全局中间件,然后匹配来自请求的路由的路由,如果匹配,则运行其他中间件组,如果路由不匹配,它将不会启动会话,我们无法获得用户甚至从$ request-> user() – rummykhan
对于你的情况你是正确的,你将无法访问当前用户而不移动它到全局组。你所做的应该没问题。编辑答案来反映这一点。 –
该代码仍处于测试阶段,我只是想确定是否有任何此后的影响。 – rummykhan