Laravel 5.2 Multi Auth Не регистрируются пользовательские данные

Я разрабатываю веб-приложение с мультиаутентификацией laravel 5.2.

вот мой код.

Auth.php

  'guards' => [
    'a' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'b' => [
        'driver' => 'session',
        'provider' => 'customers',
    ],
],



   'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    'customers' => [
        'driver' => 'eloquent',
        'model' => App\Customer::class,
    ],
],

Индексконтроллер.php

 public function doLogin(){
    $credentails = [
        'name'      =>Input::get('name'),
        'password'  =>Input::get('password')
    ];

    if(Auth::guard('a')->attempt($credentails)){
        return Redirect::to(route('sessionviewa'));
    }else{
        return "Login Error";
    }
}


public function logout(){
    Auth::guard('a')->logout();
    return "succeess";
}

public function SessionViewA(){
    dd(Auth::guard('a')->user());
}

public function SessionViewB(){
    dd(Auth::guard('b')->user());
}

Маршруты.

 Route::post('dologin',['as'=>'dologin','uses'=>'IndexController@doLogin']); 

Route::get('sessiona',['as'=>'sessionviewa','uses'=>'IndexController@SessionViewA']); 
Route::get('sessionb',['as'=>'sessionviewb','uses'=>'IndexController@SessionViewB']); 

Я могу успешно войти в систему, но не получаю данные пользователя. ?

Теперь он возвращается как null в моем браузере.


person Jishad P    schedule 15.01.2016    source источник


Ответы (2)


Я вижу, что вы используете Laravel 5.2, у меня тоже была эта проблема раньше.

Я решаю эту проблему, помещая свой маршрут в группу веб-промежуточного программного обеспечения в route.php. Таким образом, я могу получить доступ к Auth и получить пользователя, которого хочу.

Route::group(['middleware' => ['web']], function () {
    // Your route here
});

Попробуйте и дайте мне знать, работает он или нет.

person Nizam    schedule 27.01.2016

Спасибо, Низам, так очевидно, но я просто потратил на это пару часов :).

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

person TrampGuy    schedule 11.02.2016