ブラウザはステートレスであり、ブラウザには Cookie のみがあり、セッションもクライアント側の Cookie です。自動ログイン用のアカウント/パスワードをロボットに記憶させたい場合、問題は Cookie を記憶させることになります。
Golang では Cookie を覚えるのは非常に簡単です。
最近、私たちは操作ロボットを作成していましたが、兄弟の 1 人が WeChat アカウントの自動ログインに気づきました。ソース コードをざっと調べたところ、それが cookiejar を使用して実装されていることがわかりました。
cookiejar: net/http/cookiejar パッケージは CookieJar 実装を提供します。
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)
ここでキャッシュされたものはハードディスク 取得された JSON シーケンス データ、cached[`cookies`] は、前回のログイン後に書き込まれたキャッシュです。そして wechat.Client は標準の http.Client:
type WeChat struct { Client *http.Client }
プログラム サイクル内で同じ http.Client を再利用するか、Cookie をハードディスクまたはデータベースに書き込み、次回再起動時に再利用します。このようにして、アカウントの自動ログインが実現されます。
以上が小規模なプログラム開発で cookiejar を使用してアカウントを記憶する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。