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 --- server/auth/github/github.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'server') 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