Redis PHP 会话不持久
Posted
技术标签:
【中文标题】Redis PHP 会话不持久【英文标题】:Redis PHP Sessions do not persist 【发布时间】:2013-04-23 15:19:02 【问题描述】:我正在使用这个包来替换 cookie 会话,以便我的 facebook 应用程序仍然可以工作。
https://github.com/nicolasff/phpredis
我不需要为会话使用 cookie,但即使使用 redis 解决方案,它也只会在启用 cookie 的情况下持续存在。
有没有办法在没有 cookie 的情况下持久化 redis 存储?
谢谢!
【问题讨论】:
【参考方案1】:大多数会话解决方案都需要 Cookie,因为浏览器必须向服务器发送一个唯一标识符来指示用户是谁。代替 cookie,每当用户单击链接/提交表单等时,您都必须将 URL 上的会话标识符作为查询字符串参数传递。
【讨论】:
【参考方案2】:我最终赶上了 session_id(),通过 javascript 发送它。使用
$.ajaxSetup( data: sessionId );
让每个 ajax 调用都发送 sessionID
然后,使用
if(isset($_REQUEST['sessionId'])) session_id($_REQUEST['sessionId']));
设置会话。现在避免使用 Cookie。
【讨论】:
以上是关于Redis PHP 会话不持久的主要内容,如果未能解决你的问题,请参考以下文章
为啥不使用长寿命会话 ID 来代替带有令牌的持久 cookie?