2016-09-27 2 views
0

Я использую субдомен в моем проекте laravel 5, но когда я пытаюсь выполнить логин пользователя, он больше не будет аутентифицироваться. Это мой config\session.phpLaravel 5 аутентификация в субдомене не работает

return [ 
'driver' => env('SESSION_DRIVER', 'database'), 
'lifetime' => 120, 
'expire_on_close' => false, 
'encrypt' => true, 
'files' => storage_path('framework/sessions'), 
'connection' => null, 
'table' => 'sessions', 
'lottery' => [2, 100], 
'cookie' => 'laravel_session', 
'path' => '/', 
'domain' => '.stagedevelopment.dev', 
'secure' => false, 
'http_only' => true, 
]; 

мой routes.php

Route::group([ 'prefix' => 'app', 'middleware' => 'auth' ], function() { 
     ... some codes .... 
    Route::group(['domain' => '{account_alias}.'.stagedevelopment.dev'], function() { 
        Route::get('dashboard', '[email protected]'); 

это на '[email protected]' на DashController.php

public function index(Request $request, $account_alias = null){ 
    if (Auth::user()){ 
    // CODES TO CALL THE VIEW 
    } 
} 

, но при входе в это не будет перенаправлять на него. это делает меня проблемой. Я также проверяю var_dump(Auth::user()), но он возвращает значение null, но я попробовал var_dump($request->session()->get('uid')), он возвращает user_id пользователя, который пытается аутентифицироваться.

мой вопрос: я что-то пропустил? Я просто хочу, чтобы пользователь был аутентифицирован в Auth::user(). Пожалуйста, помогите мне с этим. любая помощь будет оценена. заранее спасибо.

, кстати, это мой код Логгина пользователя

public function postSignIn(Request $request) { 
     $rules = array(
      'email' => 'required|email', 
      'password' => 'required', 
     ); 
     $validator = Validator::make(Input::all(), $rules); 
     if ($validator->passes()){ 
      $remember = (!is_null($request->get('remember')) ? true : false); 
      if (Auth::attempt(array('email' => $request->input('email'), 'password' => $request->input('password')))){ 
       if (Auth::check()){ 
         $account = \App\Account::where('alias', 'LIKE', Auth::user()->account->alias)->get(); 
         if($account->count() > 0){ 
          return Redirect::to('http://'. Auth::user()->account->alias.'.stagedevelopment.dev/app/dashboard'); 
         } 
       } 
      } 
     } 
    } 
+0

Я хотел бы начать с проверки домена cookie. Похоже, вы используете синтаксис [RFC 2109] (http://tools.ietf.org/html/rfc2109), но современные браузеры предпочтут [RFC 6265] (http://tools.ietf.org/html/rfc6265) и игнорировать ведущую точку. Поэтому попробуйте ''domain' => 'stagedevelopment.dev''. – bishop

+0

Привет, епископ, спасибо за ответ. Я поставил точку в домене для поддомена. У меня появилась идея из этого http://stackoverflow.com/questions/30338518/persisting-sessions-across-subdomains-in-laravel-5 – gadss

ответ

0

он работает в настоящее время. это просто проблема с маршрутом в моем коде. субдомен в routes.php должен быть первым и внутри на нем будет приставка и т.д., как это:

Route::group(['domain' => '{account_alias}.'.env('APP_URL_NAME')], function() { 
    // L3 
    Route::group([ 'prefix' => 'app', 'middleware' => 'auth', 'middleware' => 'auth.manager' ], function() { 
     Route::get('dashboard', '[email protected]'); 
+0

Как я могу сделать с различными проектами laravel – Leoh

Смежные вопросы