PHP跨域共享会话
我在SOF上看到了一些答案,但大多数都与子域的使用有关,其中没有一个对我有用。最常见的是使用PHP跨域共享会话,php,session,.htaccess,dns,shared,Php,Session,.htaccess,Dns,Shared,我在SOF上看到了一些答案,但大多数都与子域的使用有关,其中没有一个对我有用。最常见的是使用session.cookie\u domain,据我所知,它只适用于子域 我对处理完全不同的域(包括子域的可能性)的解决方案感兴趣。不幸的是,项目的最后期限就是这样,时间不在我这边,所以我求助于SOF的专业知识和经验 当前的项目简介是能够登录到一个站点,该站点当前只存储会话中的用户id,然后能够在同一服务器环境中的不同域上检索该值。正在从数据库中存储/检索会话数据,会话id是主键 我希望找到一个“轻巧”和
session.cookie\u domain
,据我所知,它只适用于子域
我对处理完全不同的域(包括子域的可能性)的解决方案感兴趣。不幸的是,项目的最后期限就是这样,时间不在我这边,所以我求助于SOF的专业知识和经验
当前的项目简介是能够登录到一个站点,该站点当前只存储会话中的用户id
,然后能够在同一服务器环境中的不同域上检索该值。正在从数据库中存储/检索会话数据,会话id
是主键
我希望找到一个“轻巧”和“容易”实现的解决方案
系统使用内部模型-视图-控制器设计模式,因此所有请求(包括不同域)都通过单个引导脚本运行。使用域名作为变量,这将确定要向用户显示的上下文
一个看起来很有潜力的选项是使用隐藏图像并使用alt标记设置用户id
。我的第一印象表明,这似乎立即“太容易了”(如果可能的话),并且充满了安全漏洞。讨论
我考虑的另一个选项是使用IP和用户代理进行身份验证,但由于共享网络和更改IP地址,我再次觉得这不是一个可靠的选项
我的第三个选择(也是我的首选)是使用htaccess
来欺骗用户,让他们在infact apache重定向时认为自己在不同的域上;差不多
www.foo.com/index.php?domain=bar.com&controller=news/categoires/1
但向用户显示为
www.bar.com/news/categories/1
foo.com
表示“主站点域”,所有请求都通过该域运行,bar.com
表示用户认为他们正在访问的域。控制器请求指示所请求的页面和视图。这可能吗
还有其他选择吗?赞成/反对
提前感谢 您是否考虑过使用。您可以将会话存储在数据库中,并从任何域访问它们。对于其他对该功能感兴趣的人来说,恐怕没有简单的答案。谷歌“单点登录”,它将回来的技术和一些解决方案Aviable 至于使用htaccess隐藏域名,这是不可能的,因为它可能被用于恶意活动 我现在已经成功地实现了一个系统来满足我的需求
抱歉,忘了提及,我目前正在本地运行系统(使用XAMPP)。我混合使用本地域名(编辑的主机文件)和fasthost托管的域转发到我的IP。值得一提的是,这会影响我目前的测试。我正在使用这个。问题是PHP生成的会话id对于每个域都是不同的。您不能通过会话id识别用户吗?在表中使用其他列。每个用户都有多行,但可以将一行设置为相同的值。我以前从来没有这样做过,只是把东西扔出去。foo.com给出的会话id是ABC123,bar.com给出的会话id是QWERTY。除非我比较IP/UserAgent,否则(据我所知)无法知道ABC123和QWERTY指向同一个用户。检索会话数据的数据库查询是SELECT*FROM sessions,其中session_id=“%string”。还是我错过了你的观点?这不是答案。你不告诉我们你做了什么。