79 lines
2.4 KiB
PHP
Executable File
79 lines
2.4 KiB
PHP
Executable File
<?php
|
|
namespace app\controller\manager;
|
|
|
|
use app\model\{Member, AuthRule, LoginLog};
|
|
use app\controller\BaseController;
|
|
|
|
class Login extends BaseController
|
|
{
|
|
protected $middleware = ['csrf'];
|
|
|
|
/**
|
|
* user lgoin
|
|
* use ajax post push
|
|
*
|
|
* @return void | JSON
|
|
*/
|
|
public function index()
|
|
{
|
|
if(request()->isPost()){
|
|
$username = trim(input('param.username'));
|
|
$password = trim(input('param.password'));
|
|
$loginUrl = url('manager.login/index');
|
|
if(empty($username) || empty($password)){
|
|
session('loginError','用户名和密码不能为空');
|
|
return $this->redirect($loginUrl);
|
|
}
|
|
|
|
$member = Member::getByUserName($username);
|
|
if(empty($member)){
|
|
session('loginError','用户名错误');
|
|
return $this->redirect($loginUrl);
|
|
}
|
|
if($member['password'] != md5($password)){
|
|
session('loginError','用户密码错误');
|
|
return $this->redirect($loginUrl);
|
|
|
|
}
|
|
$rulesList = AuthRule::userRolesList($member['group_id']);
|
|
$rulesIdStr = '';
|
|
if (!empty($rulesList)) {
|
|
$rulesId = $rulesList['allRulesId'];
|
|
$rulesIdStr = implode(',', $rulesId);
|
|
}
|
|
|
|
$authSession = [
|
|
'userId' => $member['id'],
|
|
'userName' => $member['username'],
|
|
'groupId' => $member['group_id'],
|
|
'rules' => $rulesIdStr,
|
|
'cates' => $member['cates']
|
|
];
|
|
|
|
//记录最后登陆时间
|
|
$ip = request()->ip();
|
|
$time = time();
|
|
Member::updateById($member['id'], [
|
|
'login_time' => $time,
|
|
'login_ip' => $ip
|
|
]);
|
|
LoginLog::create([
|
|
'member_id' => $member['id'],
|
|
'name' => $member['username'],
|
|
'ip' => $ip,
|
|
'create_time' => $time
|
|
]);
|
|
session('auth', $authSession);
|
|
return redirect(url('manager.index/index'));
|
|
}
|
|
|
|
$viewData = [];
|
|
if(session('?loginError')) {
|
|
$viewData['error'] = session('loginError');
|
|
}
|
|
session('loginError', null);
|
|
$viewData['_token'] = $this->request->csrfToken;
|
|
return view()->assign($viewData);
|
|
}
|
|
}
|