Laravel 6 - Auth :: guard ('user') -> user return null - PullRequest
0 голосов
/ 19 апреля 2020

Я создаю множественную аутентификацию в Laravel. Когда я вхожу в систему с помощью пользователя, при отладке в методе пост-входа в систему, после Auth :: guard ('user') -> tryLogin ..... Я вижу пользователя, но после перенаправления в HomeController это возвращает null.

Как решить? Я новичок в Laravel.

Спасибо !!!

/ route / auth / user. php

Route::prefix('backoffice')->name('user.')->namespace('User')->middleware('user')->group(function () {
Auth::routes();
Route::get('home', 'HomeController@index')->name('home');

});

/ route / web. php

Route::group(['middleware' => 'web'], function() {

require 'auth/user.php';

Route::get('/', function () {
    return view('welcome');
});
Route::get('/home', 'HomeController@index')->name('home');
Route::resource('cadastro', 'CadastroController');

});

/ app / Контроллеры / Пользователь / Auth / LoginController - @post Login

public function login(Request $request) {
    $credentials = [
        'username' => $_POST['username'],
        'password' => $_POST['password']
    ];

    Auth::guard('user')->attempt($credentials, false);


    //dd('auth', Auth::guard('user'));

    return redirect()->intended('/backoffice/home');

}

/ app / Контроллеры / Пользователь / HomeController

public function __construct()
{
    $this->middleware('user');
    dd('after middleware', Auth::guard('user'), Auth::guard('user')->user());

}


public function index()
{
    return view('user.home');
}

1 Ответ

0 голосов
/ 19 апреля 2020

По умолчанию Laravel не поставляется с аутентификационной защитой user. Возможно, вы хотели использовать web охранник, т.е. Auth::guard('web'). Auth::guard()->user() должен возвращать зарегистрированный пользовательский объект, если пользователь вошел в систему.

Кроме того, промежуточное программное обеспечение по умолчанию для проверки вошедшего в систему пользователя - auth, а не user. Итак, ваш маршрут может выглядеть так: Route::prefix('backoffice')->name('user.')->namespace('User')->middleware('auth')->group(function () {});, за исключением того, что вы определили пользовательское промежуточное ПО в массиве app/Http/Kernel.php $routeMiddleware с псевдонимом user

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...