我在的LoginController修改登錄功能的工作,這就是我寫驗證不自定義中間件
public function login(Request $request)
{
$data = $request->all();
if($this->validateLogin((array)$data))
{
$cred = $request->email;
$cred_p = $request->password;
//if()
$user = User::select('id', 'password')->where('email','=',$cred)->first();
if(count($user) == 1)
{
if(Hash::check($cred_p, $user->password))
{
$user_id = $user->id;
$status = User_status::select('is_active', 'is_completed')->where('user_id','=',$user_id)-> first();
$active = $status->is_active;
//dd($status->is_active);
if($active == 0)
{
return redirect()->to('/login')->withErrors(['status'=>"Your account is blocked. Please contact administrator or visit here <a href='/support/acount-blocked'>Support Center</a>"]);
}
else
{
$this->attemptLogin($request);
$this->sendLoginResponse($request);
}
}
else
{
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}
}
else
{
return $this->sendFailedLoginResponse($request);
}
}
else
{
return $this->sendFailedLoginResponse($request);
}
}
這似乎很好地工作和Auth::user()
工作,但是當我添加新的中間件是IsCompletedMiddleware
我檢查dd(Auth::user());
這將返回空值。
public function handle($request, Closure $next)
{
/*if(Auth::user()->status->is_completed == 0)
{
return redirect()->to('/profile/management/complete');
}*/
return $next($request);
}
我還在中間件的頭文件中包含了use Auth;
,但它總是返回空值。並在其他控制器Auth::user()
返回適當的用戶。這是爲什麼?缺少什麼。請幫助謝謝你。
嘗試使用全球幫手'AUTH() - >用戶()'在中間件 –
空值:(從未遇到過這樣的問題我認爲自定義登錄功能與它有關 – Alen
我已經搜索了你的問題[answer-er](https://stackoverflow.com/questions/35160144/authuser-returns-null )建議添加'web'中間件以訪問'Auth :: user()' –