code: def do_login(self, http_session):
          
  
          response = http_session.get(self.LOGIN_URL)
          action_url = parse_form_action_url(response.text)
  
          # Stop login it action url is not found
          if not action_url:
              logger.debug(response.text)
              raise VkParseError("Can't parse form action url")
  
          login_form_data = {'email': self._login, 'pass': self._password}
          login_response = http_session.post(action_url, login_form_data)
          logger.debug('Cookies: %s', http_session.cookies)
  
          response_url_query = parse_url_query_params(
              login_response.url, fragment=False)
  
          logger.debug('response_url_query: %s', response_url_query)
          act = response_url_query.get('act')
  
          # Check response url query params firstly
          if 'sid' in response_url_query:
              self.require_auth_captcha(
                  response=login_response,
                  query_params=response_url_query,
                  login_form_data=login_form_data,
                  http_session=http_session)
  
          elif act == 'authcheck':
              self.require_2fa(html=login_response.text,
                               http_session=http_session)
  
          elif act == 'security_check':
              self.require_phone_number(html=login_response.text,
                                        session=http_session)
  
          session_cookies = ('remixsid' in http_session.cookies,
                             'remixsid6' in http_session.cookies)
          if any(session_cookies):
              logger.info('VK session is established')
              return True
          else:
              message = 'Authorization error: incorrect password or ' \
                        'authentication code'
              logger.error(message)
              raise VkAuthError(message)
docs: Do vk login
  
          :param http_session: vk_requests.utils.VerboseHTTPSession: http session