编程语言
首页 > 编程语言> > 如何从PHP中的另一个会话实例读取会话值?

如何从PHP中的另一个会话实例读取会话值?

作者:互联网

我在PHP中做一些事情,必须读取另一个会话实例的会话值.

浏览器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通常是这样工作的.我使用非标准名称是因为我很累,不记得它们的正式名称是什么:

>最终用户:需要登录的浏览器花花公子.
>页面服务器:最终用户尝试登录的站点.
>认证服务器:实际上拥有最终用户数据的主版本的站点.

>最终用户从页面服务器请求页面.
>页面服务器检查最终用户的现有登录状态.如果最终用户未登录,则页面服务器使用唯一令牌将最终用户重定向到身份验证服务器.
>身份验证服务器使用唯一令牌从最终用户获取请求.它完成了登录用户所需的所有操作.
>用户登录后,身份验证服务器将使用另一个不同的唯一令牌将最终用户发送回页面服务器.
>最终用户对页面服务器的请求使页面服务器向身份验证服务器发出请求.该请求包括原始唯一令牌和另一个不同的唯一令牌.
>身份验证服务器使用有关用户的信息来响应页面服务器,如果令牌无效,则会返回一条错误消息.检索用户数据后,身份验证服务器将使令牌无效. (这可以防止请求重播.顺便说一句,您应该在整个过程中都使用SSL.)
>页面服务器登录用户并存储所需的有关最终用户的任何信息.

Page Server绝对不会“冒充”最终用户,Page Server或Authentication Server绝对不需要相互触摸对方的End User会话数据.

Page Server绝对不会获得用户凭据的副本.最终用户的实际身份验证仅在身份验证服务器上进行.在认证服务器使用适当的请求令牌将用户退回之后,页面服务器请求有关用户的数据.

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

像泥一样清澈?

标签:single-sign-on,session-cookies,session,php
来源: https://codeday.me/bug/20191023/1916693.html