我目前正在开发一个电子商务网站,该网站将有大约500个项目。我需要IE8 +,Firefox,chrome支持该网站。
即使没有登录,网站的用户也应该能够将商品添加到购物车。一旦他们登录,他们应该看到他们在购物车中添加的项目,然后在同一浏览器中登录。没有必要将浏览器中添加的购物车项目映射到用户帐户,或者在用户登录的设备上访问。
鉴于这些要求,存储购物车项目,本地存储或服务器端HTTP Cookie的最佳方式是什么? 还需要对安全问题(如xss ..)进行一些输入,这些问题可能会在使用localstorage时出现,如果有的话
答案 0 :(得分:6)
通常,实际的购物车内容不是本地存储的,而是服务器硬币临时用户ID,用户ID的cookie,然后将该用户ID的购物车内容存储在服务器端数据库中。这允许您使用与登录用户完全相同的服务器端代码(其中购物车内容根据登录的用户ID存储在服务器端),以便可以从任何浏览器访问购物车。唯一的区别是未登录的用户被赋予临时用户ID,而不是永久用户ID。
如果用户在将内容放入购物车后登录或创建帐户,则可以在服务器上轻松地将购物车内容分配给现在的永久用户ID。
由于cookie可以在任何地方互操作,因此这解决了IE8的问题。由于cookie的大小有限,因此将购物车内容存储在服务器端数据库中,并且仅将临时用户ID的cookie用于处理该问题。