如何解决Laravel 7.x在__construct中发送Auth :: user
我正在从LV 5.2迁移到LV 7
在旧项目中,许多auth:check()是在存在Auth对象的某些baseController中完成的。
在LV7中,阅读了很多帖子后,我似乎无法使它工作...
我在web.php路由中有一个setuo:
Route::group(array('prefix' => '/auth'),function()
{
Route::post('login',['as' => 'dologin','uses' => '\App\Http\Controllers\Auth\LoginController@doLogin']);
Route::get('login',['as' => 'login','uses' => '\App\Http\Controllers\Auth\LoginController@login']);
Route::get('logout',['as' => 'logout','uses' => '\App\Http\Controllers\Auth\LoginController@logOut']);
});
在doLogin中,我执行\ Auth :: atempt(...),然后转储用户并使其易如反掌,然后重定向到route('home');
Route::middleware(['basicauth'])->group(function ()
{
Route::any('',['as'=>'home','uses' => '\App\Http\Controllers\HomeController@index']);
})
HomeController扩展了BaseController,在__construct中\ Auth :: user()为空
我在__construct中尝试了很多事情,例如:
$this->middleware(function ($request,$next) {
$this->user = \Auth::user();
return $next($request);
});
但仍然没有运气
注意:这种方法的原因是旧项目并且在__construct中有许多(子)baseControllers构造了缓存和用户 身份验证是针对某些逻辑完成的。
有什么想法吗?
致谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。