Как проверить, вошел ли пользователь в промежуточное ПО или нет - PullRequest
0 голосов
/ 21 октября 2019

Я использую пользовательский вход и выход в Laravel. Теперь я хочу проверить через промежуточное ПО, аутентифицирован ли пользователь, и затем он пройдет, в противном случае он будет перенаправлен обратно на страницу входа. До сих пор я пробовал это:

public function handle($request, Closure $next)
{
    if (! Auth::check()) {
        return redirect('/');
    }

    return $next($request);
}

Это не работает, потому что, когда я dd(Auth::check()), это дает мне false в качестве вывода. Пожалуйста, помогите мне решить эту проблему. Это мой логин

$email=Auth::attempt(['email' => $request->login, 'password' => $request->password]);
        $username=Auth::attempt(['username' => $request->login, 'password' => $request->password]);
        if($username || $email)
        {
            $activity=new Activity;
            $activity->user_id=Auth::id();
            $activity->login_time=date('Y-m-d H:i:s');
            $activity->save();
            return redirect('home');
        }
        else
        {
            return back()->with('msg', 'Error!Enter Cedentials Correctly');
        }

Ответы [ 3 ]

0 голосов
/ 21 октября 2019

Я думаю, что лучше всего использовать следующую функцию в вашей верхней части контроллера:

   public function __construct()
    {
      $this->middleware('auth');
    }

, если вы добавите эту функцию в свой контроллер, она будет аутентифицировать пользователей, если вы перейдете на маршруты, которые вы определилив вашем контроллере.

0 голосов
/ 26 октября 2019

Если вы используете Laravel Auth, тогда я думаю, что это должно сработать для вас.

if (\Auth::user()->id !== null) {
    return redirect('/');
}

return $next($request);
0 голосов
/ 21 октября 2019

Ваше промежуточное программное обеспечение должно работать после веб-промежуточного программного обеспечения, потому что сетевое промежуточное программное обеспечение отвечает за загрузку сеанса.

Кроме того, я не совсем уверен, что вы можете использовать метод промежуточного программного обеспечения в вашем контроллере для групп промежуточного программного обеспечения. ,Возможно, вы сможете, но я никогда не пробовал. Хотя на вашем месте я бы следовал структуре по умолчанию и просто помещал маршруты в группу веб-маршрутов.

...