繁体   English   中英

如何在同一个域上共享Django和PHP之间的会话数据

[英]How to share session data between Django and PHP on the same domain

我有一个Django应用程序,使用标准的Django auth系统登录和退出用户。 该应用程序还使用存储在Django数据库中的会话(数据库存储也是Django默认值)。

到目前为止,这么好,但是:

在同一个域上,我有一大堆在apache上运行的php页面。 我希望能够通过我的Django应用程序登录并让django启动我所有的会话变量然后当我点击一个链接,带我到一个PHP部分,我希望能够访问我在php中创建的Django会话变量。

分享会话的最佳选择是什么?

(如果它没有任何区别PHP不编辑会话,只使用变量)

您可以在PHP中实现自己的自定义会话处理程序 连接到存储来自Django数据库的会话数据的数据库,这些数据将在PHP中透明地作为会话值提供。

自定义会话处理程序的一个好处是,您可以使PHP中的该会话写保护,您只需删除任何更改。

接下来,您需要共享会话ID ,它连接到会话名称 我不太了解Django,但我猜有一些类似的东西,所以如果你使它兼容cookie或URL参数甚至可以立即工作。

成功!! (一种) 它有点被黑了,但我设法让它工作。

而不是尝试重写django_php_bridge db.py文件以使用新版本的phpserialise(1.2),

我曾经使用过几个自己的自定义调整旧版本。 最重要的是,我必须在serialize函数中添加一个额外的if语句来转换unicode字符串,但除此之外我只是按照说明djang_php_bridge docs文件(记得在django设置文件中设置SESSION_COOKIE_NAME字段),它立即起作用。

在某些时候,当我有更多的时间,我将重新编写django_php_bridge以使用新的最新的phpserialize版本,但是现在我很高兴有一个成功的出来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM