【问题标题】:laravel Auth::user() returns null after authenticationlaravel Auth::user() 认证后返回 null
【发布时间】:2021-01-02 21:52:04
【问题描述】:

我在控制器中得到 Auth::user() null。使用凭据登录后,我通常会获得经过身份验证的用户数据,但在我的一个项目中,我没有获得经过身份验证的用户数据。

为了解释,我发布了代码 sn-ps。 在 NewLoginController 中,我尝试使用凭据尝试登录,当我尝试使用凭据时它成功登录,我可以看到管理员视图,但是当我尝试使用 /homepage 路由转到主页时,我得到 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"); 

【问题讨论】:

    标签: php laravel routes laravel-authentication laravel-authorization


    【解决方案1】:

    我想你忘记使用Auth 中间件了。将您的 homepage 路由放在使用 Auth 中间件的路由组中。请参阅documentation

    Route::group(['middleware'=>'auth'],function () {
        Route::get('/homepage', 'HomePageController@getUserHomepage');
    });
    

    【讨论】:

    • 嗨..感谢您的回复。我根据您的代码进行了更改,但仍然发生相同的情况。
    • 还有什么建议吗??
    猜你喜欢
    • 1970-01-01
    • 2023-02-04
    • 2017-03-17
    • 2019-09-20
    • 2016-05-13
    • 2020-08-14
    • 2017-06-29
    • 2016-05-11
    • 1970-01-01
    相关资源
    最近更新 更多