繁体   English   中英

通过 URL 进行用户登录

[英]Making a user login via a URL

假设您有一个网站 A 和一些注册使用该网站的用户 B。 如果您在站点更新时向该用户发送 email 更新,有没有办法让用户登录到该站点。 比如说你发给他email的链接,他需要登录才能查看,那么有什么方法可以让这个用户在访问链接时自动登录,而不是让他自己输入再次输入用户名和密码。 显然,在 URL 中发送用户名和密码是不安全的,所以正在寻找其他想法。 任何帮助深表感谢。

当用户登录时,您可以在用户机器上存储一个 cookie(如果他们勾选“让我保持登录”或其他内容)。

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

然而:

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

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

或者,只需让 email 将用户定向到一个页面,该页面又重定向到登录(但在 session 中记住他们试图去的地方),一旦他们登录,就把他们带到正确的目标页面。 如果他们要求他们的浏览器在您的网站上存储用户名/密码,这将是一件微不足道的 2 秒事情。

不要低估用户对您在保护他们的安全以及您网站的用户友好性方面的感受。 这两件事可以权衡取舍,重要的是不要让平衡过度到任何一端。

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

website.com?lh=2sdsdk...

你会像这样找到你的用户:

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

您使用 hash 生成

$hash = md5($user->id.'salt'.$user->email);

但我完全不知道这个想法有多安全,而且它可能需要大量资源和大量用户,所以任何关于这个的评论都非常受欢迎。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM