Пользовательская защита Laravel не работает с чертой AuthenticateUser - PullRequest
0 голосов
/ 12 октября 2018

Я создал второго клиента с именем сторожа, который использует черту AuthenticatesUsers. Кажется, все работает хорошо, кроме функции «помни меня», каждый раз, когда я вхожу в систему, я не могу выйти из системы.Итак, я думаю, что помните меня использует по умолчанию охрану, так как я могу исправить эту проблему?Могу ли я устранить проблему в контроллере входа в систему?

контроллер входа клиента

<?php

namespace App\Http\Controllers\CustomerAuth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Auth;
use App\Customer;
class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    protected function guard()
    {
    return Auth()->guard('customer');
    }

    public function showLoginForm()
    {
        if(Auth::user() || Auth::guard('customer')->user())
        {
            return redirect('/');
        }
        else{
            return view('customer-auth.login');
        }
    }





}

AuthenticateUser.php

    protected function attemptLogin(Request $request)
{
    return $this->guard()->attempt(
        $this->credentials($request), $request->filled('remember')
    );
}

1 Ответ

0 голосов
/ 12 октября 2018

Я использую несколько пользовательских охранников.Мне пришлось создать новый метод выхода из системы, который использует

\Auth::guard($guard)->logout(); 

, поскольку по умолчанию метод logout () в StatefulGuard.php не принимает никаких параметров, таких как guard.

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