示例#1
0
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'
示例#2
0
文件: oauth_gce.py 项目: shaan7/dsopz
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'
示例#3
0
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)
示例#4
0
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)
示例#5
0
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'