func checkAccessToken()

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
}