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

来源:互联网 发布:网络基础架构 编辑:程序博客网 时间:2024/04/30 01:09

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


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

//做登陆查询的伪代码//'select id from user where email = xxx and password = xxx';//查询结果为$resif($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
原创粉丝点击