[英]Laravel 6 - Auth::guard('user')->user return null
I create a multiple Authentication in Laravel.我在 Laravel 中创建了一个多重身份验证。 When I login with user, on debug in post login method, after Auth::guard('user')->attempLogin..... I see a user but after redirect to HomeController this return null.
当我使用用户登录时,在登录后方法的调试中,在 Auth::guard('user')->attempLogin ..... 我看到一个用户,但在重定向到 HomeController 之后返回 null。
How to resolve?如何解决? I'm beginner in Laravel.
我是 Laravel 的初学者。
Thank's!!!谢谢!!!
/routes/auth/user.php /routes/auth/user.php
Route::prefix('backoffice')->name('user.')->namespace('User')->middleware('user')->group(function () {
Auth::routes();
Route::get('home', 'HomeController@index')->name('home');
}); });
/routes/web.php /routes/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/Controllers/User/Auth/LoginController - @post Login /app/Controllers/User/Auth/LoginController - @post 登录
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/Controllers/User/HomeController /app/Controllers/用户/HomeController
public function __construct()
{
$this->middleware('user');
dd('after middleware', Auth::guard('user'), Auth::guard('user')->user());
}
public function index()
{
return view('user.home');
}
By default, Laravel doesn't ship with auth guard user
.默认情况下,Laravel 不附带 auth guard
user
。 Perhaps you meant to use web
guard ie Auth::guard('web')
.也许您打算使用
web
守卫,即Auth::guard('web')
。 Auth::guard()->user()
should return the logged in user object if a user is logged in.如果用户已登录,则
Auth::guard()->user()
应返回已登录的用户 object。
Also, the default middleware for checking logged in user is auth
, not user
.此外,检查登录用户的默认中间件是
auth
,而不是user
。 So, your route might look like this: Route::prefix('backoffice')->name('user.')->namespace('User')->middleware('auth')->group(function () {});
因此,您的路线可能如下所示:
Route::prefix('backoffice')->name('user.')->namespace('User')->middleware('auth')->group(function () {});
, except you've defined a custom middleware in app/Http/Kernel.php
$routeMiddleware
array with alias user
,除非您在
app/Http/Kernel.php
$routeMiddleware
数组中使用别名user
定义了自定义中间件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.