- <?php
- //创建登录版块控制器
- namespace app\manage\control;
- use \think\Controller;
- class Main extends Controller{
- protected $request;
- public function _initialize(){
- $this->request = \think\Request::instance();
- }
- public function login(){
- if($this->request->method() == "POST"){
- $data = $this->request->param();
- //这里为登录验证(自行补充)
- //.......
- //通过登录提交的信息获取数据库中的用户,并记录ID($id)
- cookie('ADMIN_ID',$result["id"]);//cookie缓存
- cookie('LOGIN_TIME',Request::instance()->time()+3600);//记录登录时间,并缓存1小时
- }
- return view();
- }
- // 检测是否登录超时(js调用,url为:http://您的域名/manage/main/loginLosetime)
- public function loginLosetime(){
- $logintime = cookie('LOGIN_TIME');
- $time = request()->time();
- if($time > $logintime){
- return json(['code'=>1,'msg'=>'登录超时!','url'=>url('main/login')]);
- }else{
- return json(['code'=>0]);
- }
- }
- }
- ?>
- <?php
- //创建公共控制器(所有需要验证登录的控制器都继承该控制器)
- namespace app\common\control;
- use \think\Controller;
- class AdminBase extends Controller{
- protected $request;
- public function _initialize(){
- parent::_initialize();
- $this->request = \think\Request::instance();
- $this->checkLogin();//检测登录
- $this->doAction();//记录动作
- }
- protected function checkLogin(){
- $cookie_admin_id = cookie('ADMIN_ID');
- if(!empty($cookie_admin_id)){
- //获取登录用户信息
- //.......
- }else{
- if($this->request->isAjax()){
- return $this->error('您还没有登录!',url('main/login'));
- }else{
- header("Location:".url("main/login"));
- exit();
- }
- }
- }
- // 页面操作记录
- protected function doAction(){
- $logintime = cookie('LOGIN_TIME');//获取缓存登录超时时间
- $time = request()->time();//当前时间
- //判断当前时间是否大于缓存时间 或者 超时时间小于60秒后,自动多加1个小时时间
- if($time > $logintime || ($time - $logintime) < 60){
- $newLogintime = $logintime + 3600;
- cookie('LOGIN_TIME',$newLogintime);
- }
- }
- }
- ?>
- //js文件
- <script>
- $.ajaxSetup({
- cache: false
- });
- $(function(){
- setInterval(function() {
- loginLosetime()
- }, 360000);//设置1小时自动执行 loginLosetime 函数(时间可自行调整)
- });
- // 登录超时检测
- function loginLosetime(){
- $.get(AJAX_URL+'main/loginLosetime',function(res){
- if(res.code == 1){
- window.location.href = res.url;
- }
- });
- }
- </script>
转载于:https://my.oschina.net/SimTao/blog/2997017