From f70173067f91eecd77130174b8e189acb2378567 Mon Sep 17 00:00:00 2001 From: Mari Date: Wed, 7 Apr 2021 15:59:14 -0400 Subject: [PATCH] Fix refreshing (and give a warning if refreshing gives the same result) --- go.mod | 6 +++--- go.sum | 2 ++ main.go | 5 ++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 186b29d..e0466a1 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module gdrive-filereplacer go 1.16 require ( - golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 // indirect - golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602 // indirect - google.golang.org/api v0.43.0 // indirect + golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 + golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602 + google.golang.org/api v0.43.0 ) diff --git a/go.sum b/go.sum index bec96c6..f56feba 100644 --- a/go.sum +++ b/go.sum @@ -97,6 +97,7 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -339,6 +340,7 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= diff --git a/main.go b/main.go index 105f8fd..e5ece55 100644 --- a/main.go +++ b/main.go @@ -50,7 +50,7 @@ func (c *TokenCache) Token() (*oauth2.Token, error) { log.Printf("Could not get token from cache: %v", err) } else if !tok.Valid() { log.Print("Cached token is invalid, refreshing...") - tok, err = c.CachedToken() + tok, err = c.RefreshToken(tok) if err != nil { log.Printf("Cached token failed to refresh: %v", err) } @@ -102,6 +102,9 @@ func (c *TokenCache) RefreshToken(token *oauth2.Token) (*oauth2.Token, error) { if err != nil { return nil, err } + if token.AccessToken == newToken.AccessToken { + return nil, fmt.Errorf("refreshed token is the same as the original token") + } return newToken, nil }