Пример #1
0
    def oauth2_authorization(self):
        """
        OAuth2
        """
        auth_data = {
            'client_id': self.app_id,
            'display': 'mobile',
            'response_type': 'token',
            'scope': self.scope,
            'v': '5.37',
            # "redirect_uri": "https://oauth.vk.com/blank.html",
        }
        response = yield from self.auth_session.post(self.AUTHORIZE_URL,
                                                     data=auth_data)
        response = RequestsLikeResponse(response)
        response_url_query = get_url_query(response.url)
        if 'access_token' in response_url_query:
            return response_url_query

        # Permissions is needed
        logger.info('Getting permissions')
        # form_action = re.findall(r'<form method="post" action="(.+?)">', auth_response.text)[0]
        form_action = get_form_action((yield from response.text()))
        logger.info('Response form action: %s', form_action)
        if form_action:
            response = yield from self.auth_session.get(form_action)
            response = RequestsLikeResponse(response)
            response_url_query = get_url_query(response.url)
            return response_url_query

        try:
            response_json = yield from response.json()
        except ValueError:  # not JSON in response
            error_message = 'OAuth2 grant access error'
        else:
            error_message = 'VK error: [{}] {}'.format(
                response_json['error'], response_json['error_description'])
        logger.error('Permissions obtained')
        raise VkAuthError(error_message)
Пример #2
0
    def oauth2_authorization(self):
        """
        OAuth2
        """
        auth_data = {
            'client_id': self.app_id,
            'display': 'mobile',
            'response_type': 'token',
            'scope': self.scope,
            'v': '5.37',
            # "redirect_uri": "https://oauth.vk.com/blank.html",
        }
        response = yield from self.auth_session.post(self.AUTHORIZE_URL, data=auth_data)
        response = RequestsLikeResponse(response)
        response_url_query = get_url_query(response.url)
        if 'access_token' in response_url_query:
            return response_url_query

        # Permissions is needed
        logger.info('Getting permissions')
        # form_action = re.findall(r'<form method="post" action="(.+?)">', auth_response.text)[0]
        form_action = get_form_action((yield from response.text()))
        logger.info('Response form action: %s', form_action)
        if form_action:
            response = yield from self.auth_session.get(form_action)
            response = RequestsLikeResponse(response)
            response_url_query = get_url_query(response.url)
            return response_url_query

        try:
            response_json = yield from response.json()
        except ValueError:  # not JSON in response
            error_message = 'OAuth2 grant access error'
        else:
            error_message = 'VK error: [{}] {}'.format(response_json['error'], response_json['error_description'])
        logger.error('Permissions obtained')
        raise VkAuthError(error_message)