我有网站w1使用auhtlogic进行身份验证,在PHP中使用w2(比如说),我想让w2访问由w2存储的会话信息并将用户登录到w2,并检索来自会话的user_id。如何从其他站点访问一个站点的会话
回答
默认情况下,Rack(通过Rails用于管理其会话)通过编组会话散列(请参阅here)将会话信息存储在cookie中,这会产生特定于Ruby的字符串。使用PHP来反序列化这些信息是非常困难的。
如果你不这样做,你将不得不自己处理会话序列化。我认为,一个完整的解决方案是SO一个问题的范围,但有几个指针:
这将是明智的,只存储会话ID在cookie中,然后保持实际的会话数据一个可以从PHP和Rails应用程序访问的数据库。如果您真的想将会话信息保存在cookie中(或者在memcached之类的其他位置,也需要将其序列化),请查看跨语言的序列化策略,如MessagePack。
你会想做些事情来确保cookie不会被用户篡改。机架使用HMAC,这是一个很好的解决方案。我从来没有使用PHP,但我相信他们也有一个库。
您可能已经知道这一点,但以防万一:这都假设您的两个应用程序共享相同的域名。如果他们不是,那么你的用户的浏览器将不会共享这两个应用程序之间的cookie,并且你没有什么可以做的。例如,您可以在railsapp.yourdomain.com和phpapp.yourdomain.com之间共享会话,但不能共享railsapp.com和phpapp.com。
祝你好运!
我前段时间尝试过一种解决方案,那更像是一种黑客行为,但对于我的建议来说它工作得很好。
登录后,我曾经将用户的cookie写入公共目录中的文件中,当此用户试图访问他必须访问的另一台服务器时,我的应用程序在第二台服务器上,只需“知道如何访问“存储在第一台服务器中的远程文件并将该内容加载为cookie。那时我用过CURL。
注意,它引入一些安全漏洞,很可能你的安全将依赖于“朦胧” - 例如,算法来挂接cookie将被存储在文件名以及如何访问它和任何外部Web服务器配置..说,我认为我们也可以考虑使用共享memcached来存储cookie。
你有没有考虑过使用Open ID?
保存的会话信息!但我不想更喜欢这个选项 – 2010-10-05 14:51:29
- 1. 如何从其他站点获取会话变量
- 2. 访问extern站点后会话注销
- 3. WordPress多站点,如何选择不是主站点的其他站点
- 4. 如何将移动访问者从drupal站点重定向到其他域上的移动站点
- 5. 如何在其他站点/外部站点注销moodle
- 6. 从蛋糕PHP站点访问Wordpress会话
- 7. 如何从其他网站访问nopcommerce网站?
- 8. 如何将请求从一个站点重定向到子站点站点?
- 9. 如何从另一个框中访问grunt站点
- 10. asp.net站点会话超时问题
- 11. 访问其他网站
- 12. IE和FF在其他站点显示一个站点的fav图标?
- 13. 多个站点上的PHP会话
- 14. 开发站点创建会话正常,生产站点不会
- 15. Prestashop:从其他站点导入图像
- 16. Sharepoint:从其他站点添加列表
- 17. 如何从多站点到独立的WordPress网站撤消一个WordPress站点?
- 18. 发送从一个站点到另一个站点的请求
- 19. 从一个站点到另一个站点的SSL表单POST
- 20. Sharepoint站点访问问题
- 21. 如何处理访问一个“大脑”的多个站点?
- 22. 如何通过其他站点访问在Web服务中设置的会话/ Cookie:
- 23. buddypress在多站点的一个站点
- 24. 试图将会员区从一个站点合并到另一个站点
- 25. 在Drupal 7的另一个站点访问主站点的基址URL
- 26. 跨多个站点同步ASP.NET会话
- 27. 会话架构:单个站点对象
- 28. 将文件从一个站点上传到另一个站点
- 29. 从一个站点重定向到另一个站点
- 30. 将数据从一个站点发送到另一个站点
我想你的意思是你想让w2访问w1存储的会话信息。 – Shreyas 2010-10-05 06:49:51
@shreyas是的!我想让w2访问由w1 – 2010-10-05 08:56:38