diff --git a/app/admin/controller/Login.php b/app/admin/controller/Login.php index 1149251..2b6feb9 100644 --- a/app/admin/controller/Login.php +++ b/app/admin/controller/Login.php @@ -1,23 +1,20 @@ request->isPost()) { $post = $this->request->post(); $rule = [ - 'username|用户名' => 'require', - 'password|密码' => 'require', + 'username|用户名' => 'require', + 'password|密码' => 'require', 'keep_login|是否保持登录' => 'require', ]; $captcha == 1 && $rule['captcha|验证码'] = 'require|captcha'; @@ -58,19 +55,24 @@ class Login extends AdminController } $admin->login_num += 1; $admin->save(); + + Event::trigger('AdminLoginSuccess', $admin); + $admin = $admin->toArray(); unset($admin['password']); $admin['expire_time'] = $post['keep_login'] == 1 ? true : time() + 7200; session('admin', $admin); + $this->success('登录成功'); } $this->assign('captcha', $captcha); $this->assign('demo', $this->isDemo); + return $this->fetch(); } /** - * 用户退出 + * 用户退出. * @return mixed */ public function out() diff --git a/app/admin/event.php b/app/admin/event.php index 5059703..9fcdd2a 100644 --- a/app/admin/event.php +++ b/app/admin/event.php @@ -1,17 +1,14 @@ [ ], 'listen' => [ - 'AppInit' => [ - \app\admin\listener\ViewInitListener::class, - ], - 'HttpRun' => [ - \app\admin\listener\ViewInitListener::class, - ], - 'HttpEnd' => [], + 'AppInit' => [], + 'HttpRun' => [], + 'HttpEnd' => [], 'LogLevel' => [], 'LogWrite' => [], ], diff --git a/app/common/event/AdminLoginSuccess/LogEvent.php b/app/common/event/AdminLoginSuccess/LogEvent.php new file mode 100644 index 0000000..3f7a82d --- /dev/null +++ b/app/common/event/AdminLoginSuccess/LogEvent.php @@ -0,0 +1,15 @@ +username}"); + } +} diff --git a/app/event.php b/app/event.php index e9851bb..fe897ce 100644 --- a/app/event.php +++ b/app/event.php @@ -1,17 +1,30 @@ [ + +use app\common\event\AdminLoginSuccess\LogEvent; + +$event = [ + 'bind' => [ ], - 'listen' => [ - 'AppInit' => [], - 'HttpRun' => [], - 'HttpEnd' => [], + 'listen' => [ + 'AppInit' => [], + 'HttpRun' => [], + 'HttpEnd' => [], 'LogLevel' => [], 'LogWrite' => [], + 'AdminLoginSuccess' => [ + LogEvent::class, + ], ], 'subscribe' => [ ], ]; + +$listen = include __DIR__ . '/listen.php'; + +$event['listen'] = array_merge($event['listen'], $listen); + +return $event; diff --git a/app/listen.php b/app/listen.php new file mode 100644 index 0000000..ca5d8ed --- /dev/null +++ b/app/listen.php @@ -0,0 +1,5 @@ +