方案一:
user表中加入u_express_token字段,登录的时候把生成的u_express_token存到cookie中来验证是否选择记住登录信息。
u_express_token生成唯一的随机码就可以
common.php验证
获取验证session['uid'];
如果(没有session['uid']){
获取cookie['u_express_token'];
如果(根据数据库中u_express_token字段查询出用户uid){
存到session中;
}否则{
跳转到登录页面;
}
}
login.php
如果(勾选记住){
设置session['uid'];
设置$value具有唯一性,不容易被猜到
修改uid对应的字段u_express_token为$value;
设置setcookie("u_express_token", $value, time()+3600*24*3); /* 3天过期 */
}否则{
设置session['uid'];
}
out.php
清除session和cookie
方案二:
用到了加密解密(cookie不能明文存储,否则不安全)可参考
对称加密:https://blog.csdn.net/Zph1234/article/details/52443556
非对称加密:https://blog.csdn.net/Zph1234/article/details/52440613
common.php验证
获取验证session['uid'];
如果(没有session['uid']){
获取验证cookie['uid'];//加密过的
如果(存在cookie['uid']&&存在cookie['u_express_token']){
解密cookie['uid'];//需要解密
复制给sesson['uid']
}否则{
跳转到登录页面;
}
}
login.php
如果(勾选记住){
设置session['uid'];
设置setcookie("uid", $value, time()+3600*24*3); /* 3天过期,加密后的 */
设置setcookie("u_express_token", $value, time()+3600*24*3); /* 3天过期 */
}否则{
设置session['uid'];
}
out.php
清除session和cookie