gpt4 book ai didi

php - 跨域 session -跨域共享购物车

转载 作者:行者123 更新时间:2023-12-03 00:04:39 26 4
gpt4 key购买 nike

我们正在使用eshop(php、mysql)解决问题。客户希望在两个域上拥有相同的电子商店并共享购物车。在商店中,顾客无需用户帐户(无法登录)即可进行购物。还有一个问题,如何让共享购物车跨域。

购物车中的数据存储在 session 中,我们也将其存储在数据库中。但我们无法解决跨域携带数据的问题。识别未登录的用户并不安全( research )。

示例,它应该如何工作

客户前往domainOne并向购物车添加一些商品。然后他转到domainTwo(通过链接,输入域地址)并向购物车添加一些其他东西。在购物车中,他有来自两个域的东西(刷新页面后)。

您知道如何解决这个问题吗?

什么不起作用:

  • 由于客户要求,无法进行重定向
  • cookie 与域相关
  • 与其他域的 set_cookie 不起作用
  • 最简单的方法是仅保留 sessionid(存储在 cookie 中),但我们不知道如何完全识别未登录的用户。
  • 除了cookie之外,客户端还有其他地方可以存储数据吗? (可能不是)
  • 我们不能使用通过 url 中的参数发送 sessionid(如果用户点击链接到其他域)或解析 header 引荐来源网址,因为我们不知道用户如何访问其他域。

如果你不明白我的意思,可以问我一个问题。如果您认为在两个具有共享(公共(public))购物车的域上进行电子商店是个坏主意,请不要告诉我,我们知道这一点。

感谢您的每一个回答。

最佳答案

您可以使用第三个域来识别所有域中的客户。

例如使用 http://thirdDomain.com/session.php 上的 PHP 文件这包含在两家商店的所有页面上。

示例:

<script type="text/javascript" src="http://thirdDomain.com/session.php"></script>

您的客户切换域后,您可以使用第三个域将他识别为同一客户。

您可以将两个商店上的 session ID 分配给第三个域上的 session ID,以访问两个商店上的购物车。您只需向第三个域告知您的商店 session (即将它们添加为参数)。

根据您的代码和模板的灵 active ,您甚至可以使用第三个域的输出来定义商店中的 session ID。这样您就可以在所有域上使用相同的 session ID。但通常 session ID 分配应该是更安全的方式。

使用 javascript 版本,您还可以输出脚本,这些脚本可以将 session ID 添加到当前 html 页面中其他域的所有传出链接和表单中。如果您可以确定您的客户已阻止 cookie,这可能会很有趣。您还可以使用 javascript 通知父文档有关现有 session 的信息。

关于php - 跨域 session -跨域共享购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2956214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com