7

多くのサブドメインを持つホストで Laravel を使用しようとしています。Laravel のアプリを実行できるサブドメインは 1 つだけですが、PHP ネイティブ セッションを介していくつかのもの (現在のユーザーなど) を共有したいと思います。

サブドメインで動作するように Laravel のセッション構成を編集し、ドメインの値を変更しました。

'cookie' => 'mydomain_session',
'domain' => '.mydomain.com',

Laravel が実行されていない別のサブドメインでは、次の方法でセッションにアクセスしようとしています。

session_name("mydomain_session");
session_set_cookie_params(0,'/','.mydomain.com',false,true);
session_start();

$_SESSION変数をエコーし​​ようとすると、機能しません。変数は空です。

最も奇妙なことは、session_id() をエコーし​​ようとすると、両方のサブドメインで同じになることです。

さらに、3 番目のサブドメインに同じスクリプトを設定すると、laravel 以外の他のサブドメインとセッションを問題なく共有できます。

それで、私は何を間違っていますか?何か不足していますか、それとも Laravel がネイティブ PHP セッションを通常の方法で管理していませんか?

どんな助けでも大歓迎です!

4

3 に答える 3

0

おそらく、JWT (Json Web トークン) に切り替える必要があります。その設計により、この問題に悩まされることはありません。

詳細については、おそらくこの記事を確認してください: https://auth0.com/blog/2014/01/27/ten-things-you-should-know-about-tokens-and-cookies/

于 2016-04-04T14:13:59.867 に答える
0

または Laravel は通常の方法でネイティブ PHP セッションを管理していませんか?

正しい。

これを routes.php ファイルの先頭に追加します:

Session::put('foo', 'bar');
die(print_r($_SESSION));

Laravel がセッションを多次元配列に配置していることがわかります。

私にとって、「foo」セッションは$_SESSION['_sf2_attributes']

于 2013-09-27T15:16:15.510 に答える