gpt4 book ai didi

php - 如何从 PHP 中的另一个 session 实例读取 session 值?

转载 作者:可可西里 更新时间:2023-11-01 00:52:54 25 4
gpt4 key购买 nike

我正在用 PHP 做一些事情,我必须读取另一个 session 实例的 session 值。例子

浏览器 1:$_SESSION['value']="user1";

浏览器2:$_SESSION['value']="user2";

Browser1 需要从某个请求中获取“user2”值。该请求还将包含 cookie(key, value)。

我该怎么做?

谢谢,瓦尔

最佳答案

1 PHP server that handles SSO(single sign on) the other is a web applicarion runs on ruby on rails(ROR)

[...]

but we need to implement new functionality where the ROR server needs to submit an authentication request at the SSO on behalf of the browser

您的 SSO 模型不需要以这种方式工作。事实上,它不应该。

SSO 通常是这样工作的。我使用的是非标准名称,因为我累了,不记得他们的正式名称是什么:

  • 最终用户:使用需要登录的浏览器的人。
  • 页面服务器:最终用户尝试登录的站点。
  • 身份验证服务器:实际拥有最终用户数据主版本的站点。
  1. 最终用户从页面服务器请求页面。
  2. 页面服务器检查最终用户的现有登录状态。如果最终用户未登录,页面服务器会将最终用户重定向到具有唯一 token 的身份验证服务器。
  3. 身份验证服务器使用唯一 token 从最终用户那里获取请求。它会做任何它需要做的事情来让用户登录。
  4. 一旦用户登录,身份验证服务器就会使用另一个不同的唯一 token 将最终用户发送回页面服务器。
  5. 最终用户向页面服务器发出的请求导致页面服务器向身份验证服务器发出请求。该请求包括原始唯一 token 另一个不同的唯一 token
  6. 身份验证服务器使用有关用户的信息或错误消息(如果 token 无效)来响应页面服务器。一旦检索到用户数据,身份验证服务器就会使 token 失效。 (这可以防止请求重播。顺便说一下,您应该在整个过程中使用 SSL。)
  7. 页面服务器让用户登录并存储它需要的有关最终用户的任何信息。

页面服务器在任何时候都不会“模拟”最终用户,并且页面服务器或身份验证服务器在任何时候都不需要接触彼此的最终用户 session 数据。

页面服务器在任何时候都不会获得用户凭据的副本。最终用户的实际身份验证仅在身份验证服务器上进行。在身份验证服务器使用正确的请求 token 弹回用户后,页面服务器请求有关用户的数据。

如果您愿意,可以使此过程更复杂。例如,身份验证服务器将用户弹回的 URL 可能需要自定义。您可以将返回 URL 包含在最终用户对身份验证服务器的请求中,但如果这样做,您应该对其进行签名(例如使用 HMAC)以确保某些恶意白痴不会在途中操纵它。

一尘不染?

关于php - 如何从 PHP 中的另一个 session 实例读取 session 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3332515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com