如何记住用户没有注册

时间:2014-03-11 05:47:36

标签: javascript php html web session-cookies

我希望在我的网站上记住用户,但我没有任何形式的注册。我希望用户在第一次访问网站时选择用户名,然后对于该用户的其他每个请求我都要记住用户名。我试过了 -

由于用户无法使用Facebook或电子邮件或其他任何方式注册,我无法找到记住用户的方法。因此,我使用他的IP地址映射了用户的用户名并将其保存到数据库中。因此,来自IP地址的后续请求会告诉我“它是哪个用户”。但后来我才知道重置调制解调器/连接时IP地址可能会发生变化。对于静态IP地址,您必须支付ISP。然后,我很确定大多数用户都有动态IP地址。

那么,有没有办法做到这一点?我知道cookiessessions,但我不认为这是最好的方法。可能是我错了。我只是想知道世界上哪些大玩家解决这类问题。或者,有什么更好的解决方案可以做到这一点?请给我指示。

加了:

根据答案,如果我是基于cookie进行的,那么当从浏览器中删除cookie时,是否会删除用户历史记录?如果用户使用不同的浏览器从同一台PC登录,他不会多次询问用户名吗?

2 个答案:

答案 0 :(得分:2)

不要依赖IP地址。使用无限的cookie。在jQuery中,你可以设置一个cookie到期如下(显示20年到期 - 这应该足够了!):

$.cookie('my_cookie', 'my_value', { expires: 365 * 20 });

如果您担心用户清除cookie,另一个有趣的方法是询问电子邮件地址(只是电子邮件,没有密码)。然后,您可以通过电子邮件向该用户发送回您网站的链接,并在URL中附加访问令牌,对该用户进行身份验证,并将其再次存储在无限的cookie中。这样,您始终可以在不需要正式注册的情况下对用户进行身份验证。

编辑:再次阅读您的问题,看起来您只是想根据用户告诉您用户名的内容来记住用户的帐户。这不是一种安全的方法,也会导致帐户丢失。您将需要在服务器上保存一些内容,无论是唯一的令牌,密码还是电子邮件地址。

答案 1 :(得分:1)

如果您没有使用任何类型的登录,没有具体的方法来记住访问用户,这就是原因:

Cookie:我清除了我的缓存,或使用不同的浏览器访问该网站,然后,Cookie逻辑将失败( Cookie也是浏览器特定的

会话:浏览器已关闭足够的时间,会话可能会被销毁

IP:更改机器/位置/调制解调器(与上次在同一台计算机上的)将更改IP

解决此问题的一个简单方法是使用 open-id 进行登录,这样,您就不必担心凭据,这将提供一种安全的方式。

检查此主题如何使用open-id嵌入网站: How to add Social login services from Google, Facebook, Yahoo etc. to my website?