第一次接觸這個,理解短淺做個記錄。不是原創(chuàng),整合了這個同學(xué)的,因為是自己的博客,擔(dān)心他以后關(guān)閉,所以搬過來了。他的思路比較清晰,可以去這里看。因為操作步驟都是根據(jù)他的來的,所以后面直接粘過來了,懶得寫了
- 微信授權(quán)使用的是OAuth2.0授權(quán)的方式。主要有以下簡略步驟:
第一步:用戶同意授權(quán),獲取code
第二步:通過code換取網(wǎng)頁授權(quán)access_token
第三步:刷新access_token(如果需要)
第四步:拉取用戶信息(需scope為 snsapi_userinfo)
這些驗證一般都會存在cookie里面,所以可以通過修改cookie來通過驗證
2.首先模擬微信瀏覽器,Ctrl+Shift+I打開chrome的開發(fā)者中心,然后選擇右邊的三個點,選擇setting-device-add custom device,然后在 user agent的位置填寫微信的ua:
Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; Chitanda/Akari) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/6.0.0.58_r884092.501 NetType/WIFI
如圖:
添加完成以后可以點擊左上方的手機按鈕使用模擬器,如圖:
![Uploading 選擇手機模擬器_081242.png . . .]
此時刷新一下,那些通過UA驗證的界面就可以打開。但是通過cookie驗證的界面還是無法打開。
- 下面就用到修改cookie來繞過驗證了。
這里需要抓包工具,我用的fiddler。cookie修改插件EditThisCookie。有了這些準(zhǔn)備就可以修改cookie了。
手機瀏覽器打開后會跳轉(zhuǎn)到open.weixin.qq.com
域名,且頁面提示請在微信客戶端打開鏈接
.如圖:
繞過方法
將瀏覽器UA改為微信的,然后刷新頁面,會發(fā)現(xiàn)這個時候不再提示請在微信客戶端打開鏈接
了,但是整個頁面一片空白。
打開fiddler,并設(shè)置手機wifi連接,確保手機數(shù)據(jù)都經(jīng)過了fiddler。
fiddler的配置可以參考這篇文章,https的兩個配置必須要做,不然抓不了微信的包,另外如果確定手機連上了fiddler了但是微信的數(shù)據(jù)包都沒被抓到,可以先把微信app強行關(guān)閉,然后重新開一下即可
以上用手機操作雖然也還可以用,但是由于微信推出了官方PC客戶端,加上手機連fiddler操作比較麻煩,從簡單操作的角度考慮建議該步驟參考更新內(nèi)容,改為用微信PC段打開鏈接較好
在微信里點擊頁面鏈接,使其正常進(jìn)入頁面,然后fiddler上注意相關(guān)域名的記錄,找到Tunnel to open.weixin.qq.com
后面那條記錄。會發(fā)現(xiàn)這時候原來的鏈接帶上了oauth
參數(shù)。復(fù)制這時候的鏈接如圖:
發(fā)現(xiàn)我教程沒寫好導(dǎo)致這步卡了很多人——Tunnel to open.weixin.qq.com
這條記錄其實不是必須的,之所以強調(diào)這條是因為這是能找到的第一個帶cookies的頁面,而由于微信的認(rèn)證機制有時候會改變加上部分頁面請求的微信權(quán)限較多,這條請求有時候會被轉(zhuǎn)移到別的url去,因此更準(zhǔn)確的描述是找到打開后的頁面,從中選取cookies即可
在瀏覽器中打開前面復(fù)制的鏈接,會發(fā)現(xiàn)還是白屏,然后右鍵頁面,選擇EditThisCookies
,會發(fā)現(xiàn)這個頁面下有兩條cookies了。
也可以在開發(fā)者工具的Resources
cookies
wxoauth.wucai.com
里查看當(dāng)前頁面擁有的cookies數(shù)量。之所以前面不自己直接創(chuàng)建cookies就是因為cookies除了Value
這個屬性外,還有Domain
、Path
、Expires/Max-Age
等等其余屬性需要設(shè)置,而這些屬性自己是摸不出來的,只能先依靠頁面服務(wù)器創(chuàng)建,然后直接更改Value
即可
回到fiddler,還是剛剛選擇的鏈接,右邊窗口選擇Headers
,然后會看到下面有兩條cookies,以及對應(yīng)的數(shù)值。選中一條,然后右鍵Copy Value only
,將值復(fù)制到前面瀏覽器里打開的EditThisCookies
頁面中去。如圖:
需要的注意的是,這里復(fù)制出來的是cookies名稱
+cookies值
的方式,而EditThisCookies
里只需要填cookies值即可,所以復(fù)制進(jìn)去后記得將cookies Name =
這一部分刪掉。如下圖所示,綠框里的PHPSESSID=
是不需要的,刪掉即可.如圖:
重復(fù)第五步,將全部cookies值都改完之后,回到之前的瀏覽器頁面,輸入最初的主頁鏈接,成功。
在微信里的話,認(rèn)證頁面完成后一般是有跳轉(zhuǎn)的,不過由于這里是手動更改的,所以沒辦法觸發(fā)跳轉(zhuǎn),需要我們手動模擬一次。而前面的cookies在的緣故,頁面服務(wù)器也會當(dāng)我們已經(jīng)認(rèn)證過,所以就直接跳過了。最后成功的截圖:
完成,看起來很復(fù)雜,其實也很簡單。個人感覺這個過程最麻煩的地方其實在于第2步:手機連fiddler需要先斷開之前的無線,手動輸一次代理設(shè)置到wifi,然后再連接下。所以我覺得現(xiàn)在最需要一個安卓下可以存儲wifi代理鏈接設(shè)置的工具= =