2017-11-22 6 views
5

私はサーバーa.comでホストされているラーベルアプリケーションを持っています。このアプリケーションは他のサーバー上の他のラーバルアプリケーションapp.com - それは、サーバ2,3と4の初期化関数があり Auth :: user()は、ラーベルアプリケーションでドメイン間でヌルを返します

server 2. mail.app.com 
server 3. fms.app.com 
server 4. dod.app.com 

、サーバ2,3および4に渡って送信するクッキーにはシステムの認証/ユーザー管理を行い、店舗サーバー1からドメイン間で送信されたCookieをデコードしようとします。

public function initialize(){ 
     $mail = json_decode($logged_in_user_cookie)->email; 
     $user = User::where('email', $mail)->first();  
     if(!$user){ 
     $user = new User; 
     $user->email = $mail; 
     $user->save(); 
     } 
     Auth::login($user); 

     if(Auth::check()){ 
     //dd($user); - works fine.. 
     return redirect()->route('dashboard'); 

     }else{ 
     echo 'user not logged in '; 
     } 

    } 

サーバ2、3、および4はまた、ユーザーテーブルを有しているが、パスワードなしで、クッキーは、これらのサーバのいずれかヒットした場合に、システムは、クッキーを読み取り、もしあればクッキーをチェックからユーザオブジェクトを抽出しますユーザーは存在し、ユーザーを作成して[Auth :: login($ user)]を使用してユーザーを現在のシステムにログインさせ、ユーザーが既に存在する場合は自動的にユーザーにログインします..

今私たちが抱えている問題は、この行にある return redirect() - > route( 'dashboard');アプリケーションのダッシュボードページにリダイレクトされ、dd(Auth :: user()) - null、

が返され、なぜそれがそのように動作しているのかわかりません。 Auth :: user()はアプリケーション全体で使用できるようにする必要があります。

google.com - 1つのログインがyoutubeを含むすべてのアプリケーションを制御します。 drive.google.com、mail .google.com、play.google.com、news.google.com、plus.google.com、youtube.com - 私たちがやろうとしていることです

答えて

2

config/session.phpに移動し、この 'cookie' => 'laravel_session'という名前をセッション名に変更してください。たとえば、 'cookie' => 'foo_session'などです。これはうまくいくはずです。

関連する問題