diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2023-10-31 11:11:33 +0100 |
|---|---|---|
| committer | Jeroen Wijenbergh <46386452+jwijenbergh@users.noreply.github.com> | 2023-12-08 19:25:42 +0100 |
| commit | 7f2fed4ead6ebdcd3c05d1d3f76b92abd6c3c917 (patch) | |
| tree | 0e57be24c457729f2e88d1ade1c2fda7939b8d52 | |
| parent | 226dd8d9caa59a4b1a55fedf4e85837a70e49fe8 (diff) | |
Client + Server: Base the renew button 30 min window on OAuth start
| -rw-r--r-- | client/server.go | 6 | ||||
| -rw-r--r-- | internal/server/base.go | 1 | ||||
| -rw-r--r-- | internal/server/server.go | 9 |
3 files changed, 13 insertions, 3 deletions
diff --git a/client/server.go b/client/server.go index 283c531..95ca09e 100644 --- a/client/server.go +++ b/client/server.go @@ -1,6 +1,8 @@ package client import ( + "time" + "github.com/eduvpn/eduvpn-common/internal/failover" "github.com/eduvpn/eduvpn-common/internal/http" "github.com/eduvpn/eduvpn-common/internal/log" @@ -632,6 +634,10 @@ func (c *Client) ensureLogin(srv server.Server, ct oauth.Token) (err error) { c.goBackInternal() } c.FSM.GoTransition(StateAuthorized) + b, berr := srv.Base() + if berr == nil { + b.StartTimeOAuth = time.Now() + } return err } diff --git a/internal/server/base.go b/internal/server/base.go index bfa0d73..20bdd61 100644 --- a/internal/server/base.go +++ b/internal/server/base.go @@ -14,6 +14,7 @@ type Base struct { Endpoints Endpoints `json:"endpoints"` Profiles ProfileInfo `json:"profiles"` StartTime time.Time `json:"start_time"` + StartTimeOAuth time.Time `json:"start_time_oauth"` EndTime time.Time `json:"expire_time"` Type string `json:"server_type"` httpClient *http.Client diff --git a/internal/server/server.go b/internal/server/server.go index 401cb0d..3cefac3 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -66,9 +66,12 @@ func ShouldRenewButton(srv Server) bool { return true } - // 30 minutes have not passed - if !now.After(b.StartTime.Add(30 * time.Minute)) { - return false + // 30 minutes have not passed since the start of OAuth + // If the start time is not known we do not take this into account + if !b.StartTimeOAuth.IsZero() { + if !now.After(b.StartTimeOAuth.Add(30 * time.Minute)) { + return false + } } // Session will not expire today |
