diff options
Diffstat (limited to 'internal/oauth/token.go')
| -rw-r--r-- | internal/oauth/token.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/internal/oauth/token.go b/internal/oauth/token.go index a9d2c82..58d6136 100644 --- a/internal/oauth/token.go +++ b/internal/oauth/token.go @@ -89,10 +89,19 @@ func (l *tokenLock) Access() (string, error) { log.Logger.Debugf("No token response after refreshing") return "", errors.New("No token response after refreshing") } + // store the previous refresh token + pr := l.t.Refresh + // get the response as a non-pointer r := *tr e := s.Add(time.Second * time.Duration(r.Expires)) t := Token{Access: r.Access, Refresh: r.Refresh, ExpiredTimestamp: e} l.updateInternal(t) + // set the previous refresh token if the new one is empty + // This is for 2.x servers + if l.t.Refresh == "" { + log.Logger.Debugf("The previous refresh token is set as the response had no refresh token") + l.t.Refresh = pr + } return l.t.Access, nil } |
