我已将守卫设置为管理员,例如 return Auth::guard('admin')。它可以从表“admins”获取数据,但尝试 Auth::user() 返回 null
LoginController
===============
public function backendLogin(Request $request)
{
$this->validateLogin($request);
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request);
}
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}
protected function guard()
{
return Auth::guard('admin');
}
config/auth.php
===============
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
],
我尝试过很多类型
auth()->guard('admin')->attempt($credentials);
Auth::guard('admin')->attempt($credentials);
但仍然无法登录。
最佳答案
要登录,您应该使用
auth('admin')->attempt($credentials))
登录后,您可以为admin
守卫获取经过身份验证的用户信息
Auth::guard('admin')->user()
关于Laravel Auth::user() 使用守卫登录后返回 null ('admin' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58195835/