2016-11-05 21 views
3

私はかなり新しいオーバーフローのため、ここに私にこだわってください。Laravel Subdomainログイン時にリダイレクト

私は...

main.dev(これは、ログインのために登録され、そしてユーザーのためのセクションを助ける)

athlete.main.devを(以下のリンクを持っているlaravelプロジェクトを作成していますこれは

coach.main.dev(コーチはmain.devのログイン時にリダイレクトされるようにするためにこれがある)

ここでは、どのようなコードのアイデアです)main.devのログイン時にリダイレクトされる選手のためでありますユーザーをリダイレクトするように見える switch (User::getGroup()) { case 'Athlete': return Redirect::to(' http://athlete.main.dev '); case 'Coach': return Redirect::to(' http://coach.main.dev '); }

これは問題なく動作し、ユーザーはアカウントの種類に応じてリダイレクトされますが、このサブドメインに到着すると、ユーザーは現在強制的に再度ログインします。

私は約3日間、無駄な答えを見つけようとしています。

main.devのログイン情報に基づいてこれらのリダイレクトに到着すると自動的にユーザにログインすることはできますか?または、どのようにしてサブドメイン間でセッションデータを共有できますか?あなたの助けのための

おかげで、 -Nick

+0

http://athlete.main.devこのページがあなたのコントロール に私はあなたのことを言うことを意味していますここで正しいコードを書くことができますか? – DsRaj

+0

サブドメインは、ログインが持続しないために異なるドメインとして扱われます。これをチェックしてくださいhttp://stackoverflow.com/questions/3040514/are-ajax-calls-to-a-sub-domain-considered-cross-site-scripting – Shubhamoy

+0

@DsRaj私はサブドメインのコントロールを持っており、ドメイン、およびネームスペースをルートグループに追加します。 – gofish

答えて

1

一つの方法は、あなたが認証をリダイレクトして作りたいURLにユーザー名とパスワードを送信することである:: attempを( )をサブドメインに追加します。あなたが何かを行う前にcoach.main.devathlete.main.devがこれを追加取り扱うお使いのコントローラで

switch (User::getGroup()) { 
      case 'Athlete': 
       return Redirect::to('http://athlete.main.dev')->with([ 
       'username' => $username, 
       'password' => $password 
       ]); 
      case 'Coach': 
       return Redirect::to('http://coach.main.dev')->with([ 
       'username' => $username, 
       'password' => $password 
       ]);; 
     } 

if(isset($username) && isset($password)){ 
    Auth::attempt(['username' => $username, 'password' => $password]); 
} 
2

私はあなたがそれができる、あなたは別のサーバー上のアプリケーションの両方を提供する必要があるとして、あなたの問題を解決するためにSSO(シングルサインオン)機能が必要になると思いますSSOを使用してのみ達成されます。それは多分役に立つあなたの問題を解決するために、このを見てみましょう - あなたの問題を解決するために

Good single sign-on solution for Laravel

関連する問題