From deb946cf2233133056bea6231960a7e08c6fb163 Mon Sep 17 00:00:00 2001 From: Alexander Sheiko Date: Mon, 8 May 2023 13:13:08 +0300 Subject: [PATCH] Make IsLoggedIn more active and correct --- auth.go | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/auth.go b/auth.go index 06431b2..163e481 100644 --- a/auth.go +++ b/auth.go @@ -13,14 +13,23 @@ const ( bearerToken2 = "AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA" ) -type flow struct { - Errors []struct { - Code int `json:"code"` - Message string `json:"message"` - } `json:"errors"` - FlowToken string `json:"flow_token"` - Status string `json:"status"` -} +type ( + flow struct { + Errors []struct { + Code int `json:"code"` + Message string `json:"message"` + } `json:"errors"` + FlowToken string `json:"flow_token"` + Status string `json:"status"` + } + + verifyCredentials struct { + Errors []struct { + Code int `json:"code"` + Message string `json:"message"` + } `json:"errors"` + } +) func (s *Scraper) getFlowToken(data map[string]interface{}) (string, error) { headers := http.Header{ @@ -64,6 +73,17 @@ func (s *Scraper) getFlowToken(data map[string]interface{}) (string, error) { // IsLoggedIn check if scraper logged in func (s *Scraper) IsLoggedIn() bool { + req, err := http.NewRequest("GET", "https://api.twitter.com/1.1/account/verify_credentials.json", nil) + if err != nil { + return false + } + var verify verifyCredentials + err = s.RequestAPI(req, &verify) + if err != nil || verify.Errors != nil { + s.isLogged = false + } else { + s.isLogged = true + } return s.isLogged }