def login(): oauth_base.delete_file() config = __config() url = 'https://accounts.google.com/o/oauth2/auth?' + urllib.urlencode( { 'client_id': config['client_id'], 'redirect_uri': 'urn:ietf:wg:oauth:2.0:oob', 'response_type': 'code', 'scope': ' '.join(config['scopes']), 'approval_prompt': 'force', 'access_type': 'offline' }) print 'Browser:' print url print 'Code:' code = sys.stdin.readline().strip() content = http.req_json( 'POST', 'https://www.googleapis.com:443/oauth2/v3/token', urllib.urlencode({ 'code': code, 'client_id': config['client_id'], 'client_secret': config['client_secret'], 'redirect_uri': 'urn:ietf:wg:oauth:2.0:oob', 'grant_type': 'authorization_code' }), {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'}) now = now = int(time.time()) expires_in = content['expires_in'] content['created'] = now content['expires'] = now + expires_in content['handler'] = 'installed' oauth_base.write_file(content) print 'Logged in'
def refresh_token(auth): content = http.req_json('GET', 'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token', headers = { 'Metadata-Flavor': 'Google' }) now = now = int(time.time()) expires_in = content['expires_in'] content['created'] = now content['expires'] = now + expires_in content['handler'] = 'gce' oauth_base.write_file(content) print 'Logged in'
def refresh_token(auth): content = http.req_json( 'POST', auth['token_uri'], urllib.urlencode({ 'grant_type': 'urn:ietf:params:oauth:grant-type:jwt-bearer', 'assertion': auth['assertion'] }), {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'}) now = int(time.time()) expires_in = content['expires_in'] content['created'] = now content['expires'] = now + expires_in content['assertion'] = auth['assertion'] content['handler'] = 'serviceaccount' oauth_base.write_file(content)
def refresh_token(auth): config = __config() content = http.req_json('POST', 'https://www.googleapis.com/oauth2/v3/token', urllib.urlencode({ 'refresh_token': auth['refresh_token'], 'client_id': config['client_id'], 'client_secret': config['client_secret'], 'grant_type': 'refresh_token' }), { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }) now = now = int(time.time()) expires_in = content['expires_in'] content['created'] = now content['expires'] = now + expires_in content['refresh_token'] = auth['refresh_token'] content['handler'] = 'local' oauth_base.write_file(content)
def get_first_token(port, code): config = __config() content = http.req_json('POST', 'https://www.googleapis.com/oauth2/v3/token', urllib.urlencode({ 'code': code, 'client_id': config['client_id'], 'client_secret': config['client_secret'], 'redirect_uri': 'http://localhost:%s/redirect_uri' % (port), 'grant_type': 'authorization_code' }), { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }) now = now = int(time.time()) expires_in = content['expires_in'] content['created'] = now content['expires'] = now + expires_in content['handler'] = 'local' oauth_base.write_file(content) print 'Logged in'