Home | History | Annotate | Download | only in client_lib
      1 # Copyright 2015 The Chromium OS Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 """Module contains a simple client lib to interact with OAuth."""
      6 
      7 import json
      8 import urllib2
      9 
     10 import common
     11 from fake_device_server.client_lib import common_client
     12 from fake_device_server import oauth
     13 
     14 
     15 class OAuthClient(common_client.CommonClient):
     16     """Client library for interacting with OAuth."""
     17 
     18     def __init__(self, *args, **kwargs):
     19         common_client.CommonClient.__init__(
     20                 self, oauth.OAUTH_PATH, *args, **kwargs)
     21 
     22 
     23     def invalidate_all_access_tokens(self):
     24         """Invalidates all access tokens previously issued."""
     25         headers = self.add_auth_headers({'Content-Type': 'application/json'})
     26         request = urllib2.Request(self.get_url(['invalidate_all_access_tokens']),
     27                                   json.dumps(dict()), headers=headers)
     28         url_h = urllib2.urlopen(request)
     29         return json.loads(url_h.read())
     30 
     31 
     32     def invalidate_all_refresh_tokens(self):
     33         """Invalidates all refresh tokens previously issued."""
     34         headers = self.add_auth_headers({'Content-Type': 'application/json'})
     35         request = urllib2.Request(
     36             self.get_url(['invalidate_all_refresh_tokens']),
     37             json.dumps(dict()), headers=headers)
     38         url_h = urllib2.urlopen(request)
     39         return json.loads(url_h.read())
     40