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

经常在做网站的时候需要用到一周内免登陆,一个月内免登陆这种需求。要实现只能通过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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值