Auth :: user()返回Null(Laravel +护照)

时间:2020-04-09 16:21:38

标签: laravel laravel-passport

  • Laravel 7.5.2
  • 护照8.4.3
  • Vuejs:2.5.17

大家好。我正在开发Laravel项目,但遇到这样的问题:

我有一些api控制器,在其中一个中,我需要使用Auth :: user()创建一些逻辑。我对将用户详细信息返回给Vuejs后端不感兴趣。我只是一个可以在api contoller中使用它。

  • 我可以使用api来获取数据,
  • 我可以在刀片模板中获取Auth :: user()数据,
  • 登录后可重定向到/ home。

基于这三点,我认为Passport工作正常,或者与Passport无关,我不知道。但是,当我尝试在控制器中使用Auth :: user()时,它总是返回该值,就好像Auth :: user()为NULL。

我认为我正确设置了Passport,因为我通过文档做了3次。我已经尝试了所有能够找到的解决方案,但是没有一个对我有用。他们可能已经过时了。如果有人可以在这个问题上帮助我,我真的很感激。

web.php

Auth::routes();
Route::get('/home', 'BackendController@index')->name('home');

BackendController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class BackendController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Contracts\Support\Renderable
     */
    public function index()
    {
        $user = Auth::user();
        // $user is not NULL here. In balde view, I can console log $user.
        return view('layouts.backend')->with("user", $user);
    }
}

/ home是Vuejs主页。

api.php

Route::apiResources([
    'please' => 'API\HelpMeController'
]);

API / HelpMeController

public function index()
{
    if (Auth::user() || auth()->user() || auth()->guard('api')->user()) {
        return 1;
    } else {
        return 0; // it returns this one.
    }
}

P.S .:我没有共享太多代码,因为所有身份验证文件都与新安装的文件相同。唯一的区别是,我使用的是一个自定义的命名用户表,其中包含一些额外的字段,而不是默认的字段。

0 个答案:

没有答案