让用户通过URL登录

时间:2011-07-07 09:57:32

标签: php url login

假设您有一个网站A和一些注册使用该网站的用户B.如果您在网站更新时向该用户发送电子邮件更新,是否有办法让用户登录该网站。比如说,你在电子邮件中发送给他的链接,他需要登录才能查看它,所以有什么方法我们可以在访问链接时自动登录该用户,而不是他必须输入他的用户名和密码。显然,在URL中发送用户名和密码并不安全,因此正在寻找其他想法。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您可以在用户计算机登录后存储Cookie(如果他们勾选“让我登录”或其他内容)。

这样,如果您在用户返回您的网站时找到了Cookie,您就会知道可以“登录”。

但是:

Cookie是每台计算机 - 这意味着它不一定是从该机器到达您网站的同一人。

您应该只提供足够的权限以通过名称或其他方式来问候用户,但是访问其私人信息或要求付款等的任何内容都应该要求他们重新输入用户名和密码。

或者,只需让电子邮件将用户引导至某个页面,然后该页面会重定向到登录状态(但会在他们尝试去的会话中记住),并在登录后立即将其带到正确的目标页面。如果他们要求他们的浏览器在您的网站上存储用户名/密码,这将是一个微不足道的2秒事。

不要低估用户可以感觉到您正在照顾他们的安全性以及您网站的用户友好性。这两件事情可能是一种折衷,重要的是不要让两者的余额过于平衡。

答案 1 :(得分:1)

我不知道这有多安全,但某种哈希怎么样?

website.com?lh=2sdsdk...

你会发现你的用户是这样的:

SELECT * FROM users WHERE MD5 ( concat ( id,'salt',email) )='$_GET[lh]' 

使用

生成该哈希
$hash = md5($user->id.'salt'.$user->email);

但是我完全不知道这个想法有多安全,并且可能需要大量资源使用 big 用户表,所以对此的任何评论都更受欢迎。