示例#1
0
    def access_user_id_and_email(self, oauth_map):

        token = OAuthToken(oauth_map.google_access_token,
                           oauth_map.google_access_token_secret)

        oauth_request = OAuthRequest.from_consumer_and_token(
                GoogleOAuthClient.Consumer,
                token=token,
                http_url="%sapi/auth/current_google_oauth_user_id_and_email" %
                    request.host_url
                )

        oauth_request.sign_request(OAuthSignatureMethod_HMAC_SHA1(),
                                   GoogleOAuthClient.Consumer, token)

        response = get_response(oauth_request.to_url())

        try:
            obj = json.loads(response)

            if len(obj) == 2:
                # (user_id, email)
                return tuple(obj)
        except ValueError:
            logging.error("Error decoding json from "
                          "current_google_oauth_user_id_and_email; "
                          "json was %r", response)
            pass

        return (None, None)
示例#2
0
    def fetch_access_token(self, oauth_map):

        token = OAuthToken(oauth_map.google_request_token, oauth_map.google_request_token_secret)

        oauth_request = OAuthRequest.from_consumer_and_token(
                GoogleOAuthClient.Consumer,
                token = token,
                verifier = oauth_map.google_verification_code,
                http_url = "%s/_ah/OAuthGetAccessToken" % App.realm
                )

        oauth_request.sign_request(OAuthSignatureMethod_HMAC_SHA1(), GoogleOAuthClient.Consumer, token)

        response = get_response(oauth_request.to_url())

        return OAuthToken.from_string(response)
示例#3
0
    def setup_oauth(self, url="http://www.khanacademy.org"):
        self.client = TestOAuthClient(url, secrets.ka_api_consumer_key,
                                      secrets.ka_api_consumer_secret)

        request_token = OAuthToken(secrets_dev.ka_api_token_key,
                                   secrets_dev.ka_api_token_secret)
        self.access_token = self.client.fetch_access_token(request_token)
示例#4
0
    def setup_oauth(self, url="http://www.khanacademy.org"):
        # TODO(csilvers): rewrite this to not use code with "Test" in the name!
        self.client = TestOAuthClient(url, secrets.ka_api_consumer_key,
                                      secrets.ka_api_consumer_secret)

        request_token = OAuthToken(secrets_dev.ka_api_token_key,
                                   secrets_dev.ka_api_token_secret)
        self.access_token = self.client.fetch_access_token(request_token)
示例#5
0
    def fetch_request_token(self, oauth_map):
        oauth_request = OAuthRequest.from_consumer_and_token(
                GoogleOAuthClient.Consumer,
                http_url = "%s/_ah/OAuthGetRequestToken" % App.realm,
                callback = "%sapi/auth/google_token_callback?oauth_map_id=%s" % (request.host_url, oauth_map.key().id())
                )

        oauth_request.sign_request(OAuthSignatureMethod_HMAC_SHA1(), GoogleOAuthClient.Consumer, None)

        response = get_response(oauth_request.to_url())

        return OAuthToken.from_string(response)