浏览器是没有状态的,浏览器只有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中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号