브라우저는 상태 비저장이고 브라우저에는 쿠키만 있으며 세션도 클라이언트 측의 쿠키입니다. 로봇이 자동 로그인을 위해 귀하의 계정/비밀번호를 기억하도록 하려는 경우 문제는 쿠키를 기억하도록 하는 것입니다.
golang에서는 쿠키를 기억하는 것이 매우 간단합니다.
최근 저희가 운영 로봇을 작성하던 중, 저희 형제 중 한 분이 위챗 계정의 자동 로그인을 깨닫게 되었는데, 소스코드를 잠깐 살펴본 결과 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 시퀀스 데이터이고, 캐시된[`cookies`]는 이전 로그인 후에 작성된 캐시입니다. Wechat.Client는 표준 http.Client입니다.
type WeChat struct { Client *http.Client }
는 프로그램 주기 내에서 동일한 http.Client를 재사용하거나 쿠키를 하드 디스크 또는 데이터베이스에 기록하고 다음에 다시 시작할 때 재사용합니다. 이런 방식으로 계정 자동 로그인이 이루어집니다.
위 내용은 소규모 프로그램 개발에서 Cookiejar를 사용하여 계정을 기억하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!