From 54e3f0f7d25b67a310128a3cb7f888ea3ee44e2b Mon Sep 17 00:00:00 2001 From: Niall Sheridan Date: Sat, 28 May 2016 23:04:25 +0100 Subject: Set expiry time in the github auth package --- cmd/cashierd/main.go | 6 ------ server/auth/github/github.go | 12 +++++++++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/cmd/cashierd/main.go b/cmd/cashierd/main.go index 2a8d2b8..e509304 100644 --- a/cmd/cashierd/main.go +++ b/cmd/cashierd/main.go @@ -14,7 +14,6 @@ import ( "net/http" "os" "strings" - "time" "golang.org/x/oauth2" @@ -133,11 +132,6 @@ func callbackHandler(a *appContext, w http.ResponseWriter, r *http.Request) (int if err := a.authsession.Authorize(a.authprovider, code); err != nil { return http.StatusInternalServerError, err } - // Github tokens don't have an expiry. Set one so that the session expires - // after a period. - if a.authsession.Token.Expiry.Unix() <= 0 { - a.authsession.Token.Expiry = time.Now().Add(1 * time.Hour) - } a.setAuthCookie(w, r, a.authsession.Token) http.Redirect(w, r, "/", http.StatusFound) return http.StatusFound, nil diff --git a/server/auth/github/github.go b/server/auth/github/github.go index 192cd9d..d7a57af 100644 --- a/server/auth/github/github.go +++ b/server/auth/github/github.go @@ -3,6 +3,7 @@ package github import ( "errors" "net/http" + "time" "github.com/nsheridan/cashier/server/auth" "github.com/nsheridan/cashier/server/config" @@ -83,7 +84,16 @@ func (c *Config) StartSession(state string) *auth.Session { // Exchange authorizes the session and returns an access token. func (c *Config) Exchange(code string) (*oauth2.Token, error) { - return c.config.Exchange(oauth2.NoContext, code) + t, err := c.config.Exchange(oauth2.NoContext, code) + if err != nil { + return nil, err + } + // Github tokens don't have an expiry. Set one so that the session expires + // after a period. + if t.Expiry.Unix() <= 0 { + t.Expiry = time.Now().Add(1 * time.Hour) + } + return t, nil } // Username retrieves the username portion of the user's email address. -- cgit v1.2.3