Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from selenium import webdriver
- from selenium.webdriver.common.keys import Keys
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- def authenticate():
- username = raw_input("Email address: ")
- password = getpass.getpass("Password: ")
- payload = {'scope': 'openid profile email',
- 'redirect_uri': 'http://127.0.0.1:1111',
- 'response_type' : 'code',
- 'client_id': '403713388419-8aetap4a78guh458okkagrt5a7frslnv.apps.googleusercontent.com'
- }
- endpoints = requests.get('https://accounts.google.com/.well-known/openid-configuration').json()
- google_request = requests.get(endpoints['authorization_endpoint'], headers = payload, params = payload)
- driver = webdriver.Firefox()
- driver.get(google_request.url)
- elem = WebDriverWait(driver, 10).until(
- EC.visibility_of_element_located((By.ID, "Email")))
- elem.send_keys(username)
- elem.send_keys(Keys.RETURN)
- print "Email"
- elem = WebDriverWait(driver, 10).until(
- EC.visibility_of_element_located((By.ID, "Passwd")))
- elem.send_keys(password)
- elem.send_keys(Keys.RETURN)
- print "Password"
- time.sleep(10)
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.bind(("localhost", 1111))
- s.listen(5)
- s.setblocking(0)
- elem = WebDriverWait(driver, 20).until(
- EC.element_to_be_clickable((By.ID, "submit_approve_access")))
- elem.click()
- print "Approved"
- while 1:
- try:
- print "Trying"
- (clientsocket, address) = s.accept()
- print "Accepted"
- data = clientsocket.recv(4096)
- print data
- data = data.split("\n")[0].split()[1].split("&")[0].split("=")[1]
- payload2 = {'code': data,
- 'client_id' : '403713388419-8aetap4a78guh458okkagrt5a7frslnv.apps.googleusercontent.com',
- 'client_secret' : 'sT1ktYq5OBn5xPd3SwTKyAoV',
- 'redirect_uri' : 'http://127.0.0.1:1111',
- 'grant_type' : 'authorization_code'
- }
- google_response = requests.post(endpoints['token_endpoint'], params = payload2)
- print google_response.text
- driver.close()
- s.close()
- if 'error' in google_response:
- print "Error"
- return None
- else:
- return google_response
- except IOError as e:
- if e.errno == errno.EWOULDBLOCK:
- print "Passing"
- pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement