kefu/application/admin/controller/Login.php

81 lines
2.5 KiB
PHP

<?php
/**
* 登录控制器.
*/
namespace app\admin\controller;
use think\Controller;
use Repository\LogRepository;
use Repository\IpRepository;
class Login extends Controller
{
// 登录首页
public function index()
{
// $ipAccess = (new IpRepository)->ipAccess();
// if(!$ipAccess){
// throw new \think\exception\HttpException(404, '非法请求!');
// }
$this->assign([
'version' => config('version'),
]);
return $this->fetch();
}
// 处理登录
public function doLogin()
{
if (request()->isPost()) {
$userName = input('param.user_name');
$password = input('param.password');
if (empty($userName) || empty($password)) {
return json(['code' => -1, 'data' => '', 'msg' => '用户名或密码不能为空']);
}
$userInfo = db('admins')->where('user_name', $userName)->find();
// var_dump($userInfo, password_verify($password, $userInfo['password']), $password);return;
if (empty($userInfo) || !password_verify($password, $userInfo['password']) || 1 != $userInfo['status']) {
return json(['code' => -4, 'data' => '', 'msg' => '密码错误']);
}
// 记录管理员状态
session('user_name', $userName);
session('user_id', $userInfo['id']);
session('user_last_login', time());
// 管理员角色
$role = db('admin_role')
->alias('a')
->where('admin_id', $userInfo['id'])
->join('role r',"r.id=a.role_id")
->field('name')
->find();
$role_name = $role['name'] ? $role['name'] : '暂无角色';
session('role_name', $role_name);
// 更新管理员状态
$param = [
'last_login_ip' => request()->ip(),
'last_login_time' => time(),
];
db('admins')->where('id', $userInfo['id'])->update($param);
LogRepository::write('系统管理', '登录成功');
return json(['code' => 1, 'data' => url('index/index'), 'msg' => '登录成功']);
}
}
public function loginOut()
{
session('user_name', null);
session('user_id', null);
session('user_last_login', null);
session('role_name', null);
$this->redirect(url('login/index'));
}
}