瀏覽器是沒有狀態的,瀏覽器只有cookie,session在客戶端也是cookie。如果想讓機器人記住帳號/密碼實現自動登陸,問題就演變成讓其記住Cookie。
記住Cookie在golang中是極簡單的。
最近我們寫營運機器人,有一個兄弟實現了微信帳號的自動登陸,簡單翻了翻源碼,發現是使用cookiejar實現的。
cookiejar:The net/http/cookiejar package provides a CookieJar implementation.
cookiejar在golang來源碼中極為簡單:
type CookieJar interface { //设置cookie SetCookies(u *url.URL, cookies []*Cookie) //取cookie Cookies(u *url.URL) []*Cookie} 核心代码: wechat.BaseURL = cached[`baseURL`].(string) wechat.BaseRequest = cached[`baseRequest`].(*BaseRequest) cookies := cached[`cookies`].([]*http.Cookie) u, ue := url.Parse(wechat.BaseURL) if ue != nil { return ue }
wechat.Client.Jar.SetCookies(u , cookies)
其中cached是從硬碟上讀取的json序列數據,cached[`cookies`]是先前登陸之後寫入的快取。而wechat.Client是一個標準的http.Client:
type WeChat struct { Client *http.Client }
在一個程式週期內重複使用同一個http.Client,或是將Cookie寫進硬碟或資料庫,下次重新啟動的時候重複使用。以此便實現了帳號的自動登陸。
以上是小程式開發之如何使用cookiejar記住帳號的詳細內容。更多資訊請關注PHP中文網其他相關文章!