时间:2021-07-01 10:21:17 帮助过:3人阅读
各种网站经常都有类似“保持30天内自动登录”的选项,请问他们是如何做到 定时 保存登录状态的?
为什么我的网站,在本地的时候,只要浏览器打开,帐号就会一直保持登录,但是上传至服务器后,只要一段时间没有操作或刷新页面,登录状态就会失效(我是用TP框架,session('admin_uid')记录登录状态)?
这是我的登录验证代码,
validateLogin();//代表登录验证操作
if($result){
//代表验证成功 括号内进行的是存session以及页面跳转操作
}
//要保存指定时间的登录状态,这里应该怎么写?
各种网站经常都有类似“保持30天内自动登录”的选项,请问他们是如何做到 定时 保存登录状态的?
为什么我的网站,在本地的时候,只要浏览器打开,帐号就会一直保持登录,但是上传至服务器后,只要一段时间没有操作或刷新页面,登录状态就会失效(我是用TP框架,session('admin_uid')记录登录状态)?
这是我的登录验证代码,
validateLogin();//代表登录验证操作
if($result){
//代表验证成功 括号内进行的是存session以及页面跳转操作
}
//要保存指定时间的登录状态,这里应该怎么写?
你设置的session
其实在一定时间后会自动失效,但是自动登陆(保持登陆状态)这个功能的实现却是靠cookie
来实现的,你需要把你的账号密码通过加密手段存储进入cookie
中,同时如果网站session
不存在的话,然后取出cookie
信息解密,在内部做一次登陆就好了,这样就实现了自动登陆,你也可以对cookie
设置有效期;最终效果就可以实现了~
浏览器设置cookie过期时间设置为30天,这样就可以一直保持登录状态了。
http://www.thinkphp.cn/topic/4484.html
本来想写一下的。网上找找有现成的。。。给你参考吧。
通常情况下,登录过期是COOKIE,SESSION这两个过期了,可以通过COOKIE设置有效时间来实现
首先,用户首次登录时候,把用户信息进行加密,然后cookie存放在客户端,有效期为30天,
然后,用户第N次访问的时候,如果是未登录状态,则从cookie中读取用户信息,解密,验证用户信息,如果通过,则给它自动登录
用数据库存session_id