public function login() { //验证验证码 $code = I('post.checkcode'); $username = I('post.username'); $password = I('post.password'); $captcha = new \Think\Verify(); if (!$captcha->check($code)) { $this->error = '验证码不正确'; return false; } //通过用户名获取用户的密码和盐 $userinfo = $this->getByUsername($username); if (!$userinfo) { $this->error = '用户名不正确'; return false; } //验证加盐加密后的密码 if (my_mcrypt($password, $userinfo['salt']) !== $userinfo['password']) { $this->error = '密码不正确'; return false; } unset($userinfo['salt'], $userinfo['password']); login($userinfo); $shopping_car = D('ShoppingCar'); $shopping_car->moveCarToDb(); return true; //成功返回true,失败返回false }
/** * 用户登录。 * 验证验证码 * 验证用户名 * 验证密码 * @param string $username 用户名 * @param string $password 密码 * @return boolean true成功 false失败 */ public function login($username, $password) { //判断验证码是否匹配 $code = I('post.captcha'); $captcha = new \Think\Verify(); if ($captcha->check($code) === false) { $this->error = '验证码不正确'; return false; } //1.根据用户名获取对应的记录,得到盐和密码 $row = $this->getByUsername($username); if ($row) { //2.有记录,说明用户名是存在的,进行密码验证 $salt = $row['salt']; $db_password = $row['password']; //3.使用加盐加密进行验证 if (my_mcrypt($password, $salt) == $db_password) { // session('USERINFO',$row); login($row); //是否需要保存登录信息 if (I('post.remember')) { //保存token到数据库和cookie cookie('admin_id', $row['id'], 604800); //保存一周 $token = create_token(); cookie('token', $token, 604800); //保存一周 D('AdminToken')->addToken($row['id'], $token); } $this->savePermission(); return true; //验证通过,用户名和密码匹配 } else { $this->error = '密码不正确'; return false; } } else { $this->error = '用户名不存在'; return false; } }