一个已经暴露的问题是向未注册用户开放我们的应用程序(我们可以将其形象化为在线商店)。
目前,有一个管理系统, super 用户可以在其中添加员工,还有一个网站,客户可以通过注册添加自己。
我们被要求允许客户在不注册或登录的情况下使用该网站,但我们不想破坏“订单”表 - 我们仍然需要单独引用每个客户并维护注册用户功能(地址查找、购买历史记录等)。我们一直在考虑的主要想法是使用未注册客户的电子邮件地址代替客户表中的代理键(或其哈希值),以便新老客户只需在结帐时输入他们的电子邮件地址即可被添加到我们的数据库中并收到他们的订单确认。每个客户的不同电子邮件地址的问题可以通过管理员端的“合并”工具得到缓解,并且多个客户共享同一电子邮件(某些办公环境)的问题对我们来说并不是什么大问题。
主要问题是:实际应用程序如何处理未注册用户?
响应答案更新
我们不想强制注册用户每次都登录,即使他们的电子邮件地址已经作为注册用户存在于我们的系统中。此外,如果人们提倡使用电子邮件地址作为 key ,您将如何处理注册帐户持有人将其电子邮件地址提供给其他人的情况?
最佳答案
在我们公司,我们是这样做的:
- 当任何用户下订单时,我们在
customers
表中查找他的电子邮件(他需要指定并且是唯一的)。 - 如果不存在,我们只需创建用户(我们已经拥有用户订单中的所有必需数据)并将他标记为
registred=0
。 - 现在我们使用他的用户 ID 继续订购流程。
- 当有人在该电子邮件下注册时,我们只需更新他的凭据(无论他指定什么),同时保留他的订单历史记录和其他任何内容。我认为这不会引起安全问题,用户需要确认电子邮件地址,因此除非该帐户确实是他的,否则他无论如何都不会注册。
我们不允许已经注册的电子邮件创建订单,所以这应该清除您的电子邮件合并,因为没有人能够在一个电子邮件地址下创建一个注册和未注册的帐户,并且当他完成后,他永远不会可以再次未注册购物。希望这会有所帮助。
关于php - 存储未注册客户用户的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7499016/