Advertisement
Guest User

Untitled

a guest
Jul 26th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. function _initialConnection(user, pass, callback) {
  2. let opts = {
  3. url: config.loginURL,
  4. headers: {
  5. "User-Agent": "niantic"
  6. }
  7. };
  8.  
  9. request.get(opts, (err, resp, body) => {
  10. if (err) return callback(err, null);
  11.  
  12. console.log(resp.headers);
  13.  
  14. let data;
  15. try {
  16. data = JSON.parse(body);
  17. } catch(err) {
  18. return callback(err, null);
  19. }
  20. return callback(null, user, pass, data);
  21. });
  22. }
  23.  
  24. function _postConnection(user, pass, data, callback) {
  25. let opts = {
  26. url: config.loginURL,
  27. form: {
  28. 'lt': data.lt,
  29. 'execution': data.execution,
  30. '_eventId': 'submit',
  31. 'username': user,
  32. 'password': pass
  33. },
  34. headers: {
  35. 'User-Agent': 'niantic'
  36. }
  37. };
  38.  
  39.  
  40. request.post(opts, (err, resp, body) => {
  41. if (err) return callback(err, null);
  42.  
  43. let parsedBody;
  44. if (body) {
  45. try {
  46. parsedBody = JSON.parse(body)
  47. if (('errors' in parsedBody) && parsedBody.errors.length > 0) {
  48. return callback(
  49. new Error('Error Logging In: ' + paredBody.errors[0]),
  50. null
  51. )
  52. }
  53. } catch(err) {
  54. return callback(err, null);
  55. }
  56. }
  57.  
  58. console.log(resp.headers)
  59.  
  60. let ticket = resp.headers['location'].split('ticket=')[1];
  61.  
  62. callback(null, ticket);
  63. });
  64. }
  65.  
  66. // Initiate HTTP Client / Cookie JAR
  67.  
  68. jar, err := cookiejar.New(nil)
  69. if err != nil {
  70. return "", fmt.Errorf("Failed to create new cookiejar for client")
  71. }
  72. newClient := &http.Client{Jar: jar, Timeout: 5 * time.Second}
  73.  
  74. // First Request
  75.  
  76. req, err := http.NewRequest("GET", loginURL, nil)
  77. if err != nil {
  78. return "", fmt.Errorf("Failed to authenticate with Googlen Details: nn Username: %sn Password: %sn AuthType: %sn", details.Username, details.Password, details.AuthType)
  79. }
  80. req.Header.Set("User-Agent", "niantic")
  81. resp, err := newClient.Do(req)
  82. if err != nil {
  83. return "", fmt.Errorf("Failed to send intial handshake: %v", err)
  84. }
  85. respJSON := make(map[string]string)
  86. err = json.NewDecoder(resp.Body).Decode(&respJSON)
  87. if err != nil {
  88. return "", fmt.Errorf("Failed to decode JSON Body: %v", err)
  89. }
  90.  
  91. resp.Body.Close()
  92.  
  93. // Second Request
  94.  
  95. form := url.Values{}
  96. form.Add("lt", respJSON["lt"])
  97. form.Add("execution", respJSON["execution"])
  98. form.Add("_eventId", "submit")
  99. form.Add("username", details.Username)
  100. form.Add("password", details.Password)
  101. req, err = http.NewRequest("POST", loginURL, strings.NewReader(form.Encode()))
  102. if err != nil {
  103. return "", fmt.Errorf("Failed to send second request authing with PTC: %v", err)
  104. }
  105. req.Header.Set("User-Agent", "niantic")
  106. req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
  107. resp, err = newClient.Do(req)
  108. if err != nil {
  109. return "", fmt.Errorf("Failed to send second request authing with PTC: %v", err)
  110. }
  111. log.Println(resp.Location())
  112. ticket := resp.Header.Get("Location")
  113.  
  114. if strings.Contains(ticket, "ticket") {
  115. ticket = strings.Split(ticket, "ticket=")[1]
  116. } else {
  117. return "", fmt.Errorf("Failed could not get the Ticket from the second requestn")
  118. }
  119. resp.Body.Close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement