方案一:
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