in internal/apiclient/token.go [185:223]
func checkAccessToken() bool {
if TokenCheckEnabled() {
clilog.Debug.Println("skipping token validity")
return true
}
const tokenInfo = "https://oauth2.googleapis.com/tokeninfo"
u, _ := url.Parse(tokenInfo)
q := u.Query()
q.Set("access_token", GetIntegrationToken())
u.RawQuery = q.Encode()
client := &http.Client{}
clilog.Debug.Println("Connecting to : ", u.String())
req, err := http.NewRequest("GET", u.String(), nil)
if err != nil {
clilog.Error.Println("error in client:", err)
return false
}
resp, err := client.Do(req)
if err != nil {
clilog.Error.Println("error connecting to token endpoint: ", err)
return false
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
clilog.Error.Println("token info error: ", err)
return false
} else if resp.StatusCode != 200 {
clilog.Error.Println("token expired: ", string(body))
return false
}
clilog.Debug.Println("Response: ", string(body))
clilog.Debug.Println("Reusing the cached token: ", GetIntegrationToken())
return true
}