PHP如何识别购物车中的用户项目以供休息api

时间:2018-03-11 06:41:01

标签: php rest authentication cart

我正在php中为电子商务应用程序创建一个基于令牌的rest api。

情景: 任何访问者都可以在不登录的情况下将项目添加到购物车。这些项目存储在mysql数据库,购物车表中,其user_id值默认为1. //用户未登录。

问题: 用户登录后,我可以在解码为用户生成的令牌后获取用户ID,但想知道,如何识别购物车表中哪些项属于哪个用户,以便更新实际的用户ID对这些产品?

表:
    customer_id int(11),
    item_id int(11),
    数量int(11),
    date_added datetime

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

你根本无法这样做。您显然是数据库中的字段,在用户登录之前和之后都是相同的。例如,当用户未登录时,您可以尝试存储IP地址或MAC地址。然后,当用户登录时,您搜索购物车表上的相同值(在IP或Mac地址上),并将所有匹配的元素设置为用户ID。

在任何情况下,您显然都需要存储一些独特的东西,以便在购物车与用户之间建立关系。

另一种解决方案,可能是最符合您需求的解决方案,是将未识别用户的购物车存储在Cookie中。然后,当用户登录时,您必须浏览存储在cookie中的所有项目,并使用正确的用户ID将它们添加到数据库中。

答案 1 :(得分:0)

您应该生成(临时)身份证明。我将自动增加的列添加到您的数据库id。创建数据库后,您可以使用PDO mysqli_insert_id($conn)之类的内容检索ID。将该ID存储在PHP会话中,您就拥有它了!