質問: お世話になっております。 Laravel5.5を使用しWebサービスを作成中ですがどうしても分からない箇所がありご教授いただきたいです。 現在以下のような階層でWebサービスを作成中です。 Top.com - (ドメイン、会員登録認証機能あり) * A.Top.com(サブドメイン、会員登録認証機能あり) * B.Top.com(サブドメイン、会員登録認証機能あり) トップページではAサイト、Bサイトの導線リンクしか無い簡素な作りで、Aサイト、Bサイトにそれぞれ会員登録機能があります。 ``` php artisan make:auth ``` このコマンドで作られる一連の認証機能を使いました。 トップ、Aサイト、Bサイトとも扱うテーブルも機能も同じです。 ルーティングでは以下のように設定しています。 ``` // Aサイト Route::group(['domain' => ‘Asite’, 'namespace' => 'ForCustomers'], function () { Auth::routes(); Route::get('/', ‘AtopController@index'); Route::get('/home', 'HomeController@index')->name('for_customers.home.index'); }); // Bサイト Route::group(['domain' => ‘Bsite’, 'namespace' => 'ForCustomers'], function () { Auth::routes(); Route::get('/', ‘BtopController@index'); Route::get('/home', 'HomeController@index')->name('for_customers.home.index'); }); // Top Route::namespace('ForCustomers') ->group(function() { Auth::routes(); Route::get('/', 'TopController@index'); Route::get('/home', 'HomeController@index')->name('for_customers.home.index'); }); ``` 例えばトップページ経由で会員ログイン機能を使うと Aサイト、Bサイトは同じアカウントでも再度ログイン認証をしなければならず、、どのサイト経由でも一度ログインしたらログイン状態を維持したいです。 ご存知の方いらっしゃいましたらご教授いただけると嬉しいです。 よろしくお願いします!
回答: 詳細に検証していませんが、config/auth.phpの認証のドライバーをsessionで利用しているならばconfig/session.phpのdomainやあたりを調整すると、サブドメインを含めてクッキーが共通化されて認証も共有できるかもしれません。 【Laravel 5系】サブドメイン間でCookieを共有する Laravel5系でサブドメイン間のCookie共有でハマった話 ドメイン別にサーバーを立てている場合は、セッションのドライバーを、個々のサーバーに配置するfileでなくdatabase等にすることなども検討してみて下さい。