【问题标题】:Laravel Auth::user() always nullLaravel Auth::user() 始终为空
【发布时间】:2021-07-29 22:43:51
【问题描述】:

我已经创建了这个登录函数,当输入正确的用户名和密码时它返回登录成功

public function login(Request $request){

        if(Auth::user()){
            return response()->json(['success'=>'already lodged.',200]);
        }else{
            $this->validate($request,[
                'email' => 'required|email',
                'password' => 'required|alphaNum|min:6'
            ]);
            $user_data = array(
                'email' => $request->get('email'),
                'password' => $request->get('password')
            );

            if(Auth::attempt($user_data)){
                return response()->json(['success'=>'login success.',401]);
            }else{
                return response()->json(['error'=>'Unauthenticated.',401]);
            }
        }

    }

我必须在 route/api.php 中定义这样的路由

Route::group(['prefix' => 'web'],function (){
    Route::get('/reg',function (){
        return view('pages.temp.register');
    });
    Route::get('/login',function (){
        return view('pages.temp.login');
    })->name('login');
});

Route::get('/userdashboard', 'UserController@index')->middleware('auth');
Route::get('/user/{id}', 'UserController@show')->middleware('auth');

但是当我在另一个控制器或另一个视图中调用 Auth::user() 时,它返回 null 它有什么问题

【问题讨论】:

  • 你能在你定义这些控制器调用的地方显示你的路由文件吗
  • Ehmm.. 当用户通过身份验证时,您返回“未授权”(401)...
  • @mrhn 我已经编辑了问题,请看一下

标签: php laravel


【解决方案1】:

我已经修复了这个错误。我在 route/api.php 中创建了一个身份验证路由。会话不支持 API 路由,因此它不会在会话中存储用户数据,因为 Auth::user() 始终返回 null。请查看此答案https://stackoverflow.com/a/44863089/13729121

【讨论】:

    猜你喜欢
    • 2018-08-11
    • 2017-03-29
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2023-02-04
    • 1970-01-01
    • 2017-06-21
    相关资源
    最近更新 更多