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

2024-06-25

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

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

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

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

我怎样才能做到这一点?

谢谢, 瓦埃尔


1 个处理 SSO(单点登录)的 PHP 服务器,另一个是在 ruby​​ on Rails(ROR)上运行的 Web 应用程序

[...]

但我们需要实现新功能,其中 ROR 服务器需要代表浏览器在 SSO 提交身份验证请求

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

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

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

页面服务器绝不会“冒充”最终用户,并且页面服务器或身份验证服务器在任何时候都不需要接触每个人最终用户会话数据。

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

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

清澈如泥?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 检查行是否存在,Laravel

    我有以下数据库结构 items id name user id users table id name user favorites table id user id item id 在我的项目永久链接页面上 我有一个 添加到收藏夹 按钮
  • 为什么php邮件功能在xampp中不起作用

    我在使用 xampp 时遇到问题 我想检查邮件表格 但看不到任何结果 我像本网站中的教程一样配置 Mercury 32 http system66 blogspot com 2010 01 how to send mail from loc
  • 如何在 PHP 中按字母顺序比较 2 个字符串?

    标题说什么 具体来说 如果我有 array1 name zoo array2 name fox 我怎样才能确定按字母顺序排列 array2的名字应该出现在上面 array1 s Use strcmp http www php net str
  • 在 php 文件上调用 exec 并传递参数?

    我想使用调用 php 文件exec http nz php net manual en function exec php 当我调用它时 我希望能够通过 id 传递变量 我可以打电话echo exec php var www unity s
  • PHP静态函数

    我有一个关于 php 中的静态函数的问题 假设我有一堂课 class test public function sayHi echo hi if I do test sayHi 它工作没有问题 class test public stati
  • 如何在会话过期后自动更新数据库而不刷新我的页面

    您需要刷新或单击该代码 然后它才会转到索引页面 并且在会话过期后更新数据库之前 如何让会话过期后自动更新数据库 使用户活跃度为0 而无需刷新或点击页面 idletime 3600 after 1hr the user gets logged
  • 如果我有循环引用,我可以触发 PHP 垃圾回收自动发生吗?

    我似乎记得一种设置方法 destruct对于一个类 以这样的方式确保一旦外部对象超出范围 循环引用就会被清除 然而 我构建的简单测试似乎表明这并不像我预期 希望的那样 有没有一种方法可以设置我的类 以便当最外面的对象超出范围时 PHP 可以
  • 在 PHP 中获取和设置(私有)属性,就像在 C# 中一样,无需使用 getter setter 魔术方法重载

    Summary 代码示例 Class People private property private name other methods not shown for simplicity 直线前进 让我假设 name is a PRIVA
  • PHP 中的延迟加载类方法

    我有一堂课 里面有一些相当大的方法 在它的基本和最常见的状态下 大多数功能并不是必需的 所以我想知道是否有一种方法可以延迟加载类的一部分 这些方法需要能够访问私有 受保护的成员 因此如果这些方法是类的本机方法 那将是理想的选择 但是在寻找其
  • date() 和 strtotime 的问题

    这是我所拥有的 str 12 25 2009 echo date Y m d strtotime str 这会产生 1969 12 31 而不是 2009 12 25 如果我将 str var 设置为 01 01 2009 我将得到正确的
  • 将数组值翻转为数组键的函数? [复制]

    这个问题在这里已经有答案了 有没有一个php函数可以接受下面的数组 array size 4 1 gt string 0 6 gt string 1 7 gt string 1 8 gt string 7 将其翻转到下面的数组 请注意 数组
  • 使用核心 Node.js 进行会话管理,无需 Express.js

    如何在核心 Node js 非express js 项目中处理 创建用于服务器端会话管理的中间件 我可以找到基于 Express 的项目的模块 但不能找到核心 Node js 的模块 请向我推荐任何用于非express js 项目的模块或中
  • 如何清除客户端.Net SSL会话缓存

    我正在编写一个小测试工具 它使用 HttpWebRequest 来负载测试服务器 我想要 每次我尝试调用 HttpWebRequest GetResponse 时 它都会建立一个新的 SSL 会话 而不是使用缓存中的会话 注意 我提供客户端
  • PHP:注意:定义会话变量的索引未定义

    我正在制作一个带有电子邮件验证器的注册系统 您典型的 使用此代码来验证 类型的事情 我希望存储一个会话变量 以便当人们在注册页面上完成帐户注册并意外导航回该页面时 它会提醒他们需要在使用前激活帐户 使这个问题如此难以诊断的原因是我以类似的方
  • 在 PHP 中,如何检查函数是否存在?

    如何检查该功能是否可用my functionPHP 中已经存在 Using function exists http php net function exists if function exists my function my fun
  • 停止警告:date() [function.date]:来自本地主机

    警告 date function date 依赖系统的时区设置是不安全的 你是required使用 date timezone 设置或 date default timezone set 函数 如果您使用任何这些方法并且仍然收到此警告 则很
  • PHP 中的随机排列对象

    如何在 PHP 中对对象进行排序 我试过shuffle 但这需要一个数组 Warning shuffle expects parameter 1 to be array object given in var www index php o
  • 如何在 Laravel 5.3 中使用标头参数调用 SOAP wsdl?

    I use artisaninweb laravel soap包来运行 SOAP wsdl 文件 为了解析 WSDL 文件 我需要将其与标头参数一起调用 所以换句话来说 首先我需要设置标头参数 然后将其与此参数一起调用 在我的 larave
  • 在 imagick php 中使用 svg 原始数据生成 SVG 图像

    我正在尝试使用从 Fabric js 获取的 svg 原始数据创建 svg 图像 我使用下面的代码使用 svg 原始数据生成 svg 但它无法正常工作 public function generate svg raw svg prefix
  • 检查redis是否正在运行->node js

    我只是想知道 在 NodeJS 进程开始时 Redis 是否启动 因此用户会话是否会被存储 这是我目前所拥有的 var session require express session var RedisStore require conne

随机推荐