5

我目前正在开发一个电子商务网站,该网站将拥有大约 500 件商品。我需要网站支持 IE8+、Firefox、chrome。

即使没有登录,该网站的用户也应该能够将商品添加到购物车。一旦他们登录,他们应该会在他们的购物车中看到他们在登录同一浏览器之前添加的商品。没有必要将浏览器中添加的购物车项目映射到用户帐户或通过用户登录的设备访问。

鉴于这些要求,存储购物车项目、本地存储或服务器端 HTTP cookie 的最佳方式是什么?还需要一些关于使用本地存储时可能出现的安全问题(如 xss ..)的输入,如果有的话

4

1 回答 1

7

通常,实际的购物车内容不会存储在本地,而是服务器创建一个临时用户 ID,该用户 ID 的 cookie,然后将该用户 ID 的购物车内容存储在服务器端数据库中。这允许您使用与登录用户完全相同的服务器端代码(其中购物车内容基于登录的用户 ID 存储在服务器端),以便可以从任何浏览器访问购物车。唯一的区别是未登录用户被赋予一个临时用户 ID,而不是永久用户 ID。

如果用户在将东西放入购物车后登录或创建帐户,则购物车内容可以很容易地在服务器上分配给现在永久的用户 ID。

由于 cookie 在任何地方都可以互操作,这就解决了 IE8 的问题。由于 cookie 的大小有限,因此将购物车内容存储在服务器端数据库中并且仅将 cookie 用于临时用户 ID 也可以处理该问题。

于 2012-12-14T08:53:37.923 回答