Auth :: user () Возвращает Нуль (Laravel + Паспорт) - PullRequest
0 голосов
/ 09 апреля 2020
  • Laravel 7.5.2
  • Паспорт 8.4.3
  • Vuejs: 2.5.17

Всем привет. Я работаю над проектом Laravel, и у меня есть проблема, подобная этой:

У меня есть несколько контроллеров API, и в одном из них мне нужно использовать Auth :: user () для создания некоторой логики c. Я не заинтересован в возвращении данных пользователя в Vuejs бэкэнд. Я просто один, чтобы использовать его в контроллере API.

  • Я могу получить данные с помощью API,
  • Я могу получить данные Auth :: user () в шаблоне блейд,
  • Переадресация на / домашние работы, когда я вхожу в систему.

Исходя из этих 3 пунктов, я предполагаю, что 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 is Vuejs home page.

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.
    }
}

PS: я не разделяю слишком много кодов, так как все файлы аутентификации остаются такими же, как если бы они были установлены для sh. Единственное отличие состоит в том, что я использую таблицу именованных пользователей с несколькими дополнительными полями вместо поля по умолчанию.

...