- 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. Единственное отличие состоит в том, что я использую таблицу именованных пользователей с несколькими дополнительными полями вместо поля по умолчанию.