我在控制器中获取Auth :: user()空。使用凭据登录后,我通常会获得经过身份验证的用户数据,但是在我的一个项目中,我没有获得经过身份验证的用户数据。
为便于解释,我正在发布代码段。 在NewLoginController中,我尝试使用凭据尝试登录,当我尝试使用凭据时可以成功登录,并且可以看到管理视图,但是当我尝试使用/ homepage route转到首页时,我得到Auth :: check()false并且无法维护应用程序的流程,而在我的其他项目中,它与我使用的流程相同。
任何人都可以指导我解决此问题吗?
class NewLoginController extends Controller
{
public function attemptLoginApi()
{
if (Auth::attempt(['username' => request('username'), 'password' => request('password')])) {
$userType = Auth::user()->user_type;
return view('admin');
} else {
toastr()->error('Invalid Credentials', 'Error');
return back();
}
}
}
class HomePageController extends Controller
{
public function getUserHomepage()
{
if (Auth::check()) {
return view('admin');
} else {
return view('home');
}
}
}
web.php
Route::get('/homepage', 'HomePageController@getUserHomepage');
Route::post('/loginApi', 'NewLoginController@attemptLoginApi')->name("loginApi");
答案 0 :(得分:0)
我认为您已经忘记使用Auth
中间件。将您的homepage
路由放入使用Auth
中间件的路由组中。参见documentation。
Route::group(['middleware'=>'auth'],function () {
Route::get('/homepage', 'HomePageController@getUserHomepage');
});