在 Symfony 应用程序之间共享会话

皮埃尔·德·莱斯皮奈

我有一个旧的 Symfony 2.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的用户,但Userapp2中没有相关实现

app2如何知道我已登录app1

亚历克斯·布莱克斯

显然,您不能在不共享类的情况下共享会话文件,考虑到版本之间的差距,这几乎不是一种选择。

在一般情况下,您需要在系统上使用单点登录之一 - OAuth2、OpenId 等。例如https://github.com/FriendsOfSymfony/FOSOAuthServerBundle

或者,您可以手动完成,这将需要更多的编码,但可以根据您的需求进行定制,并且可能降低运营成本。在这种情况下,您的 app1 应提供 API 以通过 sessionId 返回用户信息,而 app2 应实现自定义身份验证以查询此 API。API 不应公开,并且仅可用于 app2 容器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Symfony应用程序中的学说实体和业务逻辑

来自分类Dev

在节点应用程序之间共享代码

来自分类Dev

如何在Google App Engine Python应用程序的模块之间共享会话?

来自分类Dev

将应用程序上传到共享主机后,Symfony2引发ContextErrorException

来自分类Dev

PHP防止应用程序之间的会话数据共享

来自分类Dev

Symfony应用程序或PHP可以同时管理多少个会话?

来自分类Dev

Symfony2应用程序在kernel.request和kernel.controller之间始终等待3秒

来自分类Dev

来自旧版应用程序的Symfony 2和自定义会话变量

来自分类Dev

OSX El Capitan上的PHP Symfony应用程序

来自分类Dev

在具有不同子域的两个Rails 4应用程序之间共享会话

来自分类Dev

Symfony 3应用程序自定义JSON输出

来自分类Dev

在两个节点应用程序之间共享会话

来自分类Dev

如何在Symfony3应用程序中阅读Zend2会话

来自分类Dev

Softaculous Start Symfony应用程序

来自分类Dev

在不同服务器上的ReactJS和WIX Web应用程序之间共享会话

来自分类Dev

在两个不同版本的Rails应用程序之间共享Devise会话cookie

来自分类Dev

应用程序之间的共享代码

来自分类Dev

从外部应用程序访问Symfony会话值

来自分类Dev

在两个Rails4应用程序之间共享会话

来自分类Dev

Symfony应用程序或PHP可以同时管理多少个会话?

来自分类Dev

在两个节点应用程序之间共享会话

来自分类Dev

如何部署Symfony应用程序?Symfony2

来自分类Dev

Symfony2-在多个应用程序之间共享用户

来自分类Dev

使整个 symfony 应用程序只读

来自分类Dev

如何在多个 Symfony 应用程序(相同的数据库,多个内核)之间共享身份验证?

来自分类Dev

如何在 Ratchet websocket 应用程序中使用带有 symfony 会话的旧会话 ($_SESSION)

来自分类Dev

Symfony 应用程序的重复实例可以使用相同的共享源代码吗?

来自分类Dev

如何使用 Google Token 在 vueJS 应用程序和 symfony 之间进行通信?

来自分类Dev

.NET 框架应用程序和 .NET Core Razor 页面应用程序之间的共享会话

Related 相关文章

  1. 1

    Symfony应用程序中的学说实体和业务逻辑

  2. 2

    在节点应用程序之间共享代码

  3. 3

    如何在Google App Engine Python应用程序的模块之间共享会话?

  4. 4

    将应用程序上传到共享主机后,Symfony2引发ContextErrorException

  5. 5

    PHP防止应用程序之间的会话数据共享

  6. 6

    Symfony应用程序或PHP可以同时管理多少个会话?

  7. 7

    Symfony2应用程序在kernel.request和kernel.controller之间始终等待3秒

  8. 8

    来自旧版应用程序的Symfony 2和自定义会话变量

  9. 9

    OSX El Capitan上的PHP Symfony应用程序

  10. 10

    在具有不同子域的两个Rails 4应用程序之间共享会话

  11. 11

    Symfony 3应用程序自定义JSON输出

  12. 12

    在两个节点应用程序之间共享会话

  13. 13

    如何在Symfony3应用程序中阅读Zend2会话

  14. 14

    Softaculous Start Symfony应用程序

  15. 15

    在不同服务器上的ReactJS和WIX Web应用程序之间共享会话

  16. 16

    在两个不同版本的Rails应用程序之间共享Devise会话cookie

  17. 17

    应用程序之间的共享代码

  18. 18

    从外部应用程序访问Symfony会话值

  19. 19

    在两个Rails4应用程序之间共享会话

  20. 20

    Symfony应用程序或PHP可以同时管理多少个会话?

  21. 21

    在两个节点应用程序之间共享会话

  22. 22

    如何部署Symfony应用程序?Symfony2

  23. 23

    Symfony2-在多个应用程序之间共享用户

  24. 24

    使整个 symfony 应用程序只读

  25. 25

    如何在多个 Symfony 应用程序(相同的数据库,多个内核)之间共享身份验证?

  26. 26

    如何在 Ratchet websocket 应用程序中使用带有 symfony 会话的旧会话 ($_SESSION)

  27. 27

    Symfony 应用程序的重复实例可以使用相同的共享源代码吗?

  28. 28

    如何使用 Google Token 在 vueJS 应用程序和 symfony 之间进行通信?

  29. 29

    .NET 框架应用程序和 .NET Core Razor 页面应用程序之间的共享会话

热门标签

归档