1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
| Public Sub OauthLogin(UserID As String, UserPASS As String)
Set WinHttp = CreateObject("WinHttp.WinHttpRequest.5.1") With WinHttp .Option(6) = False .Open "GET", "http://yourdomian.com/login/", False .send PHPSESSID = Split(.getResponseHeader("Set-Cookie"), ";")(0) Postdata = "callbackURL=http%3A%2F%2Fyourdomian.com%2Fudb_web%2Fudbport2.php%3Fdo%3Dcallback&denyCallbackURL=http%3A%2F%2Fyourdomian.com%2Fudb_web%2Fudbport2.php%3Fdo%3DdenyCallback" .Open "POST", "http://yourdomian.com/udb_web/udbport2.php?do=authorizeURL", False .setRequestHeader "Content-Length", Len(Postdata) .setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8" .setRequestHeader "Cookie", PHPSESSID .setRequestHeader "Host", "yourdomian.com" .setRequestHeader "Referer", "http://yourdomian.com/login/" .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko" .send (Postdata) oauth_token = Split(Split(.responsetext, "?")(1), "&")(0) lgnURL = Replace(Split(.responsetext, """")(7), "\", "")
RndNum1 = Format(Rnd(), "0.00000000000000000") lgnURL = lgnURL & "&UIStyle=xqlogin&rdm=" & RndNum1 .Open "GET", lgnURL, False .send LGNJSESSIONID_2 = Split(.getResponseHeader("Set-Cookie"), ";")(0) Postdata = "appid=1111&cssid=2222&denyCallbackURL=http%3A%2F%2Fyourdomian.com%2Fudb_web%2Fudbport2.php%3Fdo%3DdenyCallback&isRemMe=0&UIStyle=xqlogin" Postdata = Postdata & "&username=" & UserID & "&password=" & UserPASS & "&" & oauth_token .Open "POST", "https://lgn.yourdomain.com/lgn/oauth/x/s/login_asyn.do", False .setRequestHeader "Accept", "*/*" .setRequestHeader "Accept-Encoding", "gzip, deflate" .setRequestHeader "Accept-Language", "en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3" .setRequestHeader "Cache-Control", "no-cache" .setRequestHeader "Connection", "Keep-Alive" .setRequestHeader "Content-Length", Len(Postdata) .setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8" .setRequestHeader "Cookie", LGNJSESSIONID_2 .setRequestHeader "Host", "lgn.yourdomain.com" .setRequestHeader "Referer", lgnURL .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko" .send (Postdata) If Mid(.responsetext, 10, 1) = 0 Then OauthCallBackURL = Split(.responsetext, """")(13) oauth_verifier = Split(.responsetext, "&")(2)
.Open "GET", OauthCallBackURL, False .send CookieCallBackURL = Split(.responsetext, "'")(1) oauth_mckey4cookie = Split(Split(.responsetext, "?")(1), "&")(0) oauth_signature = Split(.responsetext, "&")(1) RndNum2 = Format(Rnd(), "0.00000000000000000") CookieCallBackURL = CookieCallBackURL & "&rdm=" & RndNum2 .Open "GET", CookieCallBackURL, False .send CookieHeaders = Filter(Split(.getallResponseHeaders(), Chr(10)), "Set-Cookie") For I = 0 To UBound(CookieHeaders) CookieHeaders(I) = Split(Split(CookieHeaders(I), ": ")(1), ";")(0) Next loginCookieBase = "" For I = 1 To UBound(CookieHeaders) If loginCookieBase = "" Then loginCookieBase = CookieHeaders(I) Else loginCookieBase = loginCookieBase & "; " & CookieHeaders(I) End If Next LGNJSESSIONID_3 = CookieHeaders(0) domainuid = CookieHeaders(1) username = CookieHeaders(2) password = CookieHeaders(3) osinfo = CookieHeaders(4) udb_l = CookieHeaders(5) udb_n = CookieHeaders(6) oauthCookie = CookieHeaders(7) DomainCallBackURL = Split(.responsetext, """")(19) .Open "GET", DomainCallBackURL, False .send LGNJSESSIONID_4 = Split(.getResponseHeader("Set-Cookie"), ";")(0) LoginState = 1 MsgBox "登陆成功!"
Else LoginState = 0 MsgBox Split(Split(.responsetext, ":")(2), ",")(0)
End If End With End Sub
|