我目前正在开发一个门户网站,它将满足JSP和PHP Web应用程序的整合登录。
我想试试2应用程序是否可以共享同一个会话。
您的问题没有单一答案,但这取决于您如何处理此任务。
通常,不鼓励在服务之间共享会话的原因与在应用程序之间共享相同数据库的原因相同。您在两方之间创建了一个依赖关系,它很容易破解。
对于您的实际问题:如果使用ASCII / UTF-8键和值将会话表示为Redis哈希(地图/字典数据结构),则应该能够从两个应用程序访问数据。
在任何情况下,从开发的角度来看,提供由其他应用程序请求检索关于特定会话的元数据的切换端点将更安全。可以正确指定端点并获得更多可见性,从而降低破坏事件的风险。
当您试图在不合适的级别上解决问题时,这类问题通常会揭示架构问题。
即使有人后来提出如何使其成为可能的答案,我也不会参加同一场会议。但是,在您的原始问题中,问题似乎是您只想登录一次。共享会话是您提出的解决方案。
事实证明,这完全适合您的原始问题 - 它只是不涉及您设想的解决方案。相反,它被称为SSO,“单点登录”。在这样的系统中,您正在对(可能的)第三个系统进行身份验证,该系统验证用户名/密码并将其传递给委托其进行身份验证的所有Web应用程序。这样,您就可以对单个位置进行身份验证,并且可以立即登录到其他所有系统。
想想任何网站上的Facebook或Google登录。如果您在自己的服务器上运行SSO,您甚至可以将其配置为在SSO已经知道您时透明地登录,以便通过您的SSO重定向对于用户是不可见的,除非他们密切关注浏览器的位置栏。