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');
}
}
}