Controller\Auth::login PHP Method

login() public method

Login
public login ( )
    public function login()
    {
        /**
         * 1. 判断用户是否已经登录,
         *      若已经登录,则直接跳转到控制面板(仪表盘)中.
         * 2. 加载登录页面模板,进入登录页面.
         */
        $user = User::getCurrent();
        if ($user->uid) {
            header("Location:/member");
        } else {
            if (isset($_REQUEST['email']) && isset($_REQUEST['passwd'])) {
                $result = array('error' => 1, 'message' => '账户不存在啊喂!');
                $email = htmlspecialchars(trim($_REQUEST['email']));
                $passwd = htmlspecialchars(trim($_REQUEST['passwd']));
                $remember_me = htmlspecialchars(trim($_REQUEST['remember_me']));
                $user = User::getUserByEmail($email);
                if ($user) {
                    if ($user->verifyPassword($passwd)) {
                        $result['error'] = 0;
                        $result['message'] = '登录成功,即将跳转到 >仪表盘';
                        $remember_me == 'week' ? $ext = 3600 * 24 * 7 : ($ext = 3600);
                        $expire = time() + $ext;
                        $token = md5($user->uid . ":" . $user->email . ":" . $user->passwd . ":" . $expire . ":" . COOKIE_KEY);
                        setcookie("uid", base64_encode(Encrypt::encode($user->uid, ENCRYPT_KEY)), $expire, "/");
                        setcookie("expire", base64_encode(Encrypt::encode($expire, ENCRYPT_KEY)), $expire, "/");
                        setcookie("token", base64_encode(Encrypt::encode($token, ENCRYPT_KEY)), $expire, "/");
                        $_SESSION['currentUser'] = $user;
                        Logger::getInstance()->info('user [' . $user->email . '] Login success');
                    } else {
                        $result['message'] = "账户名或密码错误, 请检查后再试!";
                        Logger::getInstance()->info('user [' . $user->email . '] Login failed! wrong password');
                    }
                }
                return $result;
            } else {
                $data['globalMessage'] = MessageModel::getGlobalMessage();
                Template::setContext($data);
                Template::setView('panel/login');
            }
        }
    }