76 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
<?php
 | 
						|
namespace app\controller\manager;
 | 
						|
 | 
						|
use app\model\{Member, AuthRule, LoginLog};
 | 
						|
use app\controller\BaseController;
 | 
						|
 | 
						|
class Login extends BaseController
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * 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);
 | 
						|
        return view()->assign($viewData);
 | 
						|
    }
 | 
						|
}
 |