当用户登录时,我会获取他/她的ID并将其保存在一个会话变量中。我想知道的是,这是一条正确的道路吗?或者我应该使用cookies?所以它会自动登录等等。
session_start();
ifcorrectlogin {
$_SESSION['id'] = mysql_result($loginQuery, 0, 'user_id');
}如何对用户进行身份验证?
//菜鸟
发布于 2009-12-26 08:01:05
是的,这就是我们要做的。会话本身已经有了cookie的支持,这样就可以省去任何围绕它的编程工作。只要用户打开了浏览器实例,会话(实际上就是cookie)就会一直存在,或者直到会话在服务器端超时,因为用户在一定时间(通常在30分钟左右)没有访问站点。
登录时,只需将获取的User放入$_SESSION即可。对于受限制页面上的每个请求,您只需检查$_SESSION中是否有登录的User,并相应地处理请求,即继续操作或重定向到登录页面或错误页面。注销时,只需从$_SESSION中删除User即可。
如果你想在这台计算机上添加“记住我”选项,那么你需要自己添加另一个比会话寿命更长的cookie。您只需要确保为cookie生成一个长的、唯一的、难以猜测的值,否则很容易被黑客破解。看看PHP是如何做到这一点的:在您的did浏览器中检查名为phpsessionid的cookie。
发布于 2009-12-26 07:57:49
Cookie可以非常容易地操作。使用会话管理登录/注销。如果您愿意,您可以将用户的电子邮件地址/用户名存储在cookie中,并在当前会话到期后下次访问时为他们填写用户名框。
发布于 2009-12-26 08:00:14
我会试着找到一个会话引擎,这样你就不必处理misc了。安全问题,如果你做了最轻微的错误,就会咬你的屁股。我使用的是django,它有一个内置的会话引擎。我不知道该领域中的其他产品,尽管我假设大多数框架都有一个。
他们在django中这样做的方式是在用户的cookie中放置一个加密散列,每次页面查看都会更新,并将所有其他会话信息保存在服务器上的数据库中,以防止用户篡改和安全问题。
https://stackoverflow.com/questions/1962271
复制相似问题