Browse Source

6-10后台登录数据更新和session处理

linzhijie 5 years ago
parent
commit
b61bb23b79
3 changed files with 60 additions and 10 deletions
  1. 11 0
      app/admin/config/admin.php
  2. 28 8
      app/admin/controller/Login.php
  3. 21 2
      app/common/model/mysql/AdminUser.php

+ 11 - 0
app/admin/config/admin.php

@@ -0,0 +1,11 @@
+<?php
+/**
+ * Created by PhpStorm
+ * User: 林志杰
+ * Email: [email protected]
+ * Time: 2020/1/3 12:49
+ */
+
+return [
+    'session_admin' => 'adminUser',
+];

+ 28 - 8
app/admin/controller/Login.php

@@ -22,6 +22,7 @@ class Login extends BaseController
 
 
     public function md5()
     public function md5()
     {
     {
+        halt(session(config('admin.session_admin')));
         echo md5('admin_singwa_abc');
         echo md5('admin_singwa_abc');
     }
     }
 
 
@@ -44,14 +45,33 @@ class Login extends BaseController
             return show(config('status.error'), '验证码不正确');
             return show(config('status.error'), '验证码不正确');
         }
         }
 
 
-        $adminUserObj = new AdminUser();
-        $adminUser = $adminUserObj->getAdminUserByUsername($username);
-        if (empty($adminUser) || $adminUser->status != config('status.mysql.table_normal')) {
-            return show(config('status.error'), '不存在该用户');
-        }
-        $adminUser = $adminUser->toArray();
-        if ($adminUser['password'] !== md5($password . '_singwa_abc')) {
-            return show(config('status.error'), '密码错误');
+        try {
+            $adminUserObj = new AdminUser();
+            $adminUser = $adminUserObj->getAdminUserByUsername($username);
+            if (empty($adminUser) || $adminUser->status != config('status.mysql.table_normal')) {
+                return show(config('status.error'), '不存在该用户');
+            }
+            $adminUser = $adminUser->toArray();
+            if ($adminUser['password'] !== md5($password . '_singwa_abc')) {
+                return show(config('status.error'), '密码错误');
+            }
+
+            // 记录session
+            session(config('admin.session_admin'), $adminUser);
+
+            // 记录信息到mysql中
+            $updateData = [
+                'last_login_time' => time(),
+                'last_login_ip' => request()->ip(),
+                'update_time' => time(),
+            ];
+            $res = $adminUserObj->updateById($adminUser['id'], $updateData);
+            if (empty($res)) {
+                return show(config('status.error'), '登陆失败');
+            }
+        } catch (\Exception $e) {
+            // todo 记录日志 $e->getMessage()
+            return show(config('status.error'), '内部异常,登陆失败');
         }
         }
 
 
         return show(config('status.success'), '登陆成功');
         return show(config('status.success'), '登陆成功');

+ 21 - 2
app/common/model/mysql/AdminUser.php

@@ -31,7 +31,26 @@ class AdminUser extends Model
         $where = [
         $where = [
             'username' => trim($username),
             'username' => trim($username),
         ];
         ];
-        $result = $this->where($where)->find();
-        return $result;
+        return $this->where($where)->find();
+    }
+
+    /**
+     * 根据主键id更新数据表中的数据
+     * @param $id
+     * @param $data
+     * @return bool
+     */
+    public function updateById($id, $data)
+    {
+        $id = (int)$id;
+        if (empty($id) || empty($data) || !is_array($data)) {
+            return false;
+        }
+
+        $where = [
+            'id' => $id,
+        ];
+
+        return $this->where($where)->save($data);
     }
     }
 }
 }