Jonlin 6 år sedan
förälder
incheckning
0a3deccef7

+ 9 - 6
application/admin/controller/Login.php

@@ -49,25 +49,28 @@ class Login extends Controller
                 return json(['code' => -5, 'data' => '', 'msg' => '您已被禁用']);
             }
 
-            // 记录管理员状态
-            cookie('user_name', $userName, config('save_time'));
-            cookie('user_id', $userInfo['id'], config('save_time'));
-
+            // 登陆成功 生成token
+            $module = mt_rand(100000,999999);
+            $token = base64_encode($module.'#$@%!^*/'.time().'/'.$userInfo['id']);
             // 更新管理员状态
             $param = [
                 'last_login_ip' => request()->ip(),
+                'token' => $token,
+                'expire_time' => time(),
                 'last_login_time' => time()
             ];
             db('admins')->where('id', $userInfo['id'])->update($param);
 
+            $this->assign([
+                'token' => $token
+            ]);
+
             return json(['code' => 1, 'data' => url('index/index'), 'msg' => '登录成功']);
         }
     }
 
     public function loginOut()
     {
-        cookie('user_name', '');
-        cookie('user_id', '');
 
         $this->redirect(url('login/index'));
     }

+ 24 - 0
application/admin/model/Admins.php

@@ -0,0 +1,24 @@
+<?php
+namespace app\admin\model;
+
+use think\Model;
+
+
+class Admins extends Model
+{
+    //检测token
+    function checktoken($token){
+        $user = db('admins')->where('token', $token)->find();
+        if(!empty($user)){
+            $time = time()-$user['expire_time'];
+            if($time<3600){
+                db('admins')->where('id', $user['id'])->update(['expire_time' => time()]);
+                return 1;
+            }else{
+                return -1;
+            }
+        }
+        return -1;
+    }
+
+}

+ 1 - 1
application/index/controller/Login.php

@@ -14,7 +14,7 @@ class Login extends Controller
     public function index()
     {
         $token = input("param.token/s");
-        $res = \app\index\model\Accounts::checktoken($token);
+        $res = model('Accounts')->checktoken($token);
         if($res == -1){
             return $res;
         }

+ 3 - 4
application/index/controller/User.php

@@ -9,7 +9,7 @@ class User extends Controller
     public function index()
     {
         $token = input("param.token/s");
-        $res = \app\index\model\Accounts::checktoken($token);
+        $res = model('Accounts')->checktoken($token);
         if($res == -1){
             return $res;
         }
@@ -27,12 +27,11 @@ class User extends Controller
     public function uqdatePwd()
     {
         $token = input("param.token/s");
-        $res = \app\index\model\Accounts::checktoken($token);
+        $res = model('Accounts')->checktoken($token);
         if($res == -1){
             return $res;
         }
         $user_id = explode('/',base64_decode($token))['2'];
-        $userInfo = db('accounts')->where('id', $user_id)->find();
 
         if(request()->isPost()){
             $password = input("param.password/s");
@@ -76,7 +75,7 @@ class User extends Controller
     public function LeavingMessage()
     {
         $token = input("param.token/s");
-        $res = \app\index\model\Accounts::checktoken($token);
+        $res = model('Accounts')->checktoken($token);
         if($res == -1){
             return $res;
         }

+ 1 - 1
application/index/model/Accounts.php

@@ -18,7 +18,7 @@ class Accounts extends Model
     }
 
     //检测token
-    public static function checktoken($token){
+    function checktoken($token){
         $user = db('accounts')->where('token', $token)->find();
         if(!empty($user)){
             $time = time()-$user['expire_time'];