您的位置:首页 > 编程语言 > PHP开发

PHP实现自动登陆的思路分析

2015-01-28 21:53 323 查看
经常在做网站的时候需要用到一周内免登陆,一个月内免登陆这种需求。要实现只能通过cookie来实现了。那具体的实现过程是怎样的呢?



1.首先在用户第一次登陆的时候,如果勾选了一周内免登陆,则在登陆操作完成之后,存储一个自动登录的cookie,这个cookie可以是“$value是用户的"id"加一个"随机码"组成的字符串加密处理后的数据”这个随机码是存放在数据库里的用户表里面,作为用户下次自动登陆时验证。也可以是更加高端的数据,大家尽情发挥。

//做登陆查询的伪代码
//'select id from user where email = xxx and password = xxx';
//查询结果为$res
if($res){
setcookie('autoLogin',$value,7*24*3600+time());
//$value是用户的'id'加上一个'随机码'组成的字符串,然后加密处理的数据
//这个随机码是存在数据库的用户表里面,作为用户下次自动登录时验证
}


2.然后在下次登陆的时候在初始化的时候,先去检测用户电脑里是否有$_COOKIE['autoLogin']的数据,如果有,则对数据今昔解密之后分析,查看是否是之前登陆存储的真是cookie(以防伪造)

if(!empty($_COOKIE['autoLogin'])){
$userInfo = jiemi($_COOKIE['autoLogin']);
//假设解密完毕得到的是一个数组
$userInfo['code'] = xxx;
$userInfo['id'] = xxx;
//然后拿这个信息去数据库里查询,如果能查到那么就登录成功
//查询伪代码
//select id from user where id = $userInfo['id'] and code = $userInfo['code']
//$res是查询的结果
if($res){
//重新处理cookie和session
}
}


转自:http://jingyan.baidu.com/article/20b68a8853a410796cec62ba.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: