Advertisement
Guest User

Untitled

a guest
Jun 8th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. from selenium import webdriver
  2. from selenium.webdriver.common.keys import Keys
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.support.ui import WebDriverWait
  5. from selenium.webdriver.support import expected_conditions as EC
  6.  
  7.  
  8.  
  9.  
  10. def authenticate():
  11.  
  12. username = raw_input("Email address: ")
  13. password = getpass.getpass("Password: ")
  14. payload = {'scope': 'openid profile email',
  15. 'redirect_uri': 'http://127.0.0.1:1111',
  16. 'response_type' : 'code',
  17. 'client_id': '403713388419-8aetap4a78guh458okkagrt5a7frslnv.apps.googleusercontent.com'
  18. }
  19. endpoints = requests.get('https://accounts.google.com/.well-known/openid-configuration').json()
  20.  
  21. google_request = requests.get(endpoints['authorization_endpoint'], headers = payload, params = payload)
  22.  
  23. driver = webdriver.Firefox()
  24. driver.get(google_request.url)
  25.  
  26. elem = WebDriverWait(driver, 10).until(
  27. EC.visibility_of_element_located((By.ID, "Email")))
  28. elem.send_keys(username)
  29. elem.send_keys(Keys.RETURN)
  30. print "Email"
  31.  
  32. elem = WebDriverWait(driver, 10).until(
  33. EC.visibility_of_element_located((By.ID, "Passwd")))
  34. elem.send_keys(password)
  35. elem.send_keys(Keys.RETURN)
  36. print "Password"
  37.  
  38.  
  39. time.sleep(10)
  40. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  41. s.bind(("localhost", 1111))
  42. s.listen(5)
  43. s.setblocking(0)
  44.  
  45. elem = WebDriverWait(driver, 20).until(
  46. EC.element_to_be_clickable((By.ID, "submit_approve_access")))
  47. elem.click()
  48. print "Approved"
  49.  
  50. while 1:
  51. try:
  52. print "Trying"
  53. (clientsocket, address) = s.accept()
  54. print "Accepted"
  55. data = clientsocket.recv(4096)
  56. print data
  57. data = data.split("\n")[0].split()[1].split("&")[0].split("=")[1]
  58. payload2 = {'code': data,
  59. 'client_id' : '403713388419-8aetap4a78guh458okkagrt5a7frslnv.apps.googleusercontent.com',
  60. 'client_secret' : 'sT1ktYq5OBn5xPd3SwTKyAoV',
  61. 'redirect_uri' : 'http://127.0.0.1:1111',
  62. 'grant_type' : 'authorization_code'
  63. }
  64.  
  65. google_response = requests.post(endpoints['token_endpoint'], params = payload2)
  66. print google_response.text
  67. driver.close()
  68. s.close()
  69. if 'error' in google_response:
  70. print "Error"
  71. return None
  72. else:
  73. return google_response
  74. except IOError as e:
  75. if e.errno == errno.EWOULDBLOCK:
  76. print "Passing"
  77. pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement