Symfonyアプリ間でセッションを共有する

ピエール・ド・レスピナイ

私は古いSymfony2.4アプリ(php 5を使用)と標準のセキュリティ(form_loginファイアウォールとロールベースの認証)を持っています。それをapp1と呼びましょう

今、私は新しいSymfony 3.3アプリ(php 7)を作成しています。これを使用してセッションを維持し、ユーザーがシームレスに切り替えることができるようにします。それをapp2と呼びましょうユーザーの認証とストレージは引き続きapp1によって管理されます。

これらのアプリは、同じドメイン、異なるサブドメインでホストされています。app1セッションファイルをapp2に(Dockerボリュームで)共有することができました

両方のアプリのセッション構成は次のとおりです。

framework:
    session:
        handler_id: session.handler.native_file
        save_path: '%kernel.root_dir%/../var/sessions/%kernel.environment%'
        cookie_domain: myapp.dev

したがって、app1にログインすると、app2にもログインしていると見なされることを期待していますapp2が正しいCookieを送信して
いるのを見ていますが、次のようにクラッシュします。

警告:クラス__PHP_Incomplete_Classにはアンシリアライザーがありません

実際には、app1のユーザーをセッションからシリアル化しようとしていますが、app2に関連するUser実装がありません

app2は、私がapp1にログインしていることをどのように知ることができますか?

アレックスブレックス

明らかに、クラスを共有せずにセッションファイルを共有することはできません。これは、バージョン間のギャップを考慮するとほとんどオプションではありません。

一般的なケースでは、シングルサインオンシステムの1つ(OAuth2、OpenIdなど)を使用する必要があります。例:https//github.com/FriendsOfSymfony/FOSOAuthServerBundle

または、手動で行うこともできます。これには、もう少しコーディングが必要になりますが、ニーズに合わせて調整し、運用コストを削減できる可能性があります。この場合、app1はsessionIdによってユーザー情報を返すAPIを提供する必要があり、app2はこのAPIをクエリするためのカスタム認証を実装する必要があります。APIは公開しないでください。また、app2コンテナでのみ使用できます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

2つのノードアプリ間でセッションを共有する

分類Dev

Jettyの異なるWebアプリ間でのセッション共有

分類Dev

.NETCoreと.NETFrameworkアプリケーション間でアセンブリを共有する方法

分類Dev

Symfony2-複数のアプリケーション間でユーザーを共有する

分類Dev

Tomcatの異なるアプリケーション間でセッション状態を共有する方法はありますか?

分類Dev

アプリケーション間でVMマシンを共有する

分類Dev

異なるサーバー上のReactJSとWIXWebアプリケーション間でセッションを共有する

分類Dev

リクエスト間でアプリケーションスレッドプールを共有する

分類Dev

CorePhpとCodeIgniterの間でセッションを共有する

分類Dev

2つのMVCアプリケーション間でキャッシュを共有する

分類Dev

アプリケーション間でJSファイルを共有する

分類Dev

APIスレッドとアプリケーションスレッド間でデータを共有する

分類Dev

JavaバックエンドとAndroidアプリケーション間でPOJOを共有する

分類Dev

複数のSymfonyインスタンス間でアプリケーションキャッシュを共有する方法(共有キャッシュプール)?

分類Dev

Vue.jsアプリケーション間で「計算された」メソッドを共有する方法

分類Dev

Rails 5.2アプリとGolang間でのWebセッションの共有

分類Dev

メッセージ共有アプリケーションを介してアプリケーションリンクを共有する方法

分類Dev

セッション値は兄弟Webアプリ間で共有されますか?

分類Dev

既存のアプリケーション間でデータを共有するためのキーチェーングループアクセス

分類Dev

AngularCLI-アプリケーション間でプロトタイプ関数を共有する方法

分類Dev

Keycloak-2つの(Angular)クライアントアプリ間の共有セッションを無効にする方法は?

分類Dev

Githubアクション、ジョブステップ間で計算値を共有する方法は?

分類Dev

異なるセッション間で文字列配列リストの値を共有する

分類Dev

PHPとノード間でセッションを共有する

分類Dev

AndroidのwebviewとHTTPURLConnection間でセッションを共有する

分類Dev

WatchConnectivity複数のWKInterfaceController間でセッションを共有する方法は?

分類Dev

ブラウザタブ間でのセッション共有を防止する

分類Dev

アプリケーション間でCFCを共有することは可能ですか?

分類Dev

複数のJavaアプリケーション間で接続プールを共有する方法

Related 関連記事

  1. 1

    2つのノードアプリ間でセッションを共有する

  2. 2

    Jettyの異なるWebアプリ間でのセッション共有

  3. 3

    .NETCoreと.NETFrameworkアプリケーション間でアセンブリを共有する方法

  4. 4

    Symfony2-複数のアプリケーション間でユーザーを共有する

  5. 5

    Tomcatの異なるアプリケーション間でセッション状態を共有する方法はありますか?

  6. 6

    アプリケーション間でVMマシンを共有する

  7. 7

    異なるサーバー上のReactJSとWIXWebアプリケーション間でセッションを共有する

  8. 8

    リクエスト間でアプリケーションスレッドプールを共有する

  9. 9

    CorePhpとCodeIgniterの間でセッションを共有する

  10. 10

    2つのMVCアプリケーション間でキャッシュを共有する

  11. 11

    アプリケーション間でJSファイルを共有する

  12. 12

    APIスレッドとアプリケーションスレッド間でデータを共有する

  13. 13

    JavaバックエンドとAndroidアプリケーション間でPOJOを共有する

  14. 14

    複数のSymfonyインスタンス間でアプリケーションキャッシュを共有する方法(共有キャッシュプール)?

  15. 15

    Vue.jsアプリケーション間で「計算された」メソッドを共有する方法

  16. 16

    Rails 5.2アプリとGolang間でのWebセッションの共有

  17. 17

    メッセージ共有アプリケーションを介してアプリケーションリンクを共有する方法

  18. 18

    セッション値は兄弟Webアプリ間で共有されますか?

  19. 19

    既存のアプリケーション間でデータを共有するためのキーチェーングループアクセス

  20. 20

    AngularCLI-アプリケーション間でプロトタイプ関数を共有する方法

  21. 21

    Keycloak-2つの(Angular)クライアントアプリ間の共有セッションを無効にする方法は?

  22. 22

    Githubアクション、ジョブステップ間で計算値を共有する方法は?

  23. 23

    異なるセッション間で文字列配列リストの値を共有する

  24. 24

    PHPとノード間でセッションを共有する

  25. 25

    AndroidのwebviewとHTTPURLConnection間でセッションを共有する

  26. 26

    WatchConnectivity複数のWKInterfaceController間でセッションを共有する方法は?

  27. 27

    ブラウザタブ間でのセッション共有を防止する

  28. 28

    アプリケーション間でCFCを共有することは可能ですか?

  29. 29

    複数のJavaアプリケーション間で接続プールを共有する方法

ホットタグ

アーカイブ