Merge branch 'master' of https://github.com/golang/oauth2
diff --git a/oauth2.go b/oauth2.go
index 5b82acb..280ac24 100644
--- a/oauth2.go
+++ b/oauth2.go
@@ -343,14 +343,14 @@
token.TokenType, _ = b["token_type"].(string)
token.RefreshToken, _ = b["refresh_token"].(string)
token.raw = b
- e, ok := b["expires_in"].(int)
+ e, ok := b["expires_in"].(float64)
if !ok {
// TODO(jbd): Facebook's OAuth2 implementation is broken and
// returns expires_in field in expires. Remove the fallback to expires,
// when Facebook fixes their implementation.
- e, _ = b["expires"].(int)
+ e, _ = b["expires"].(float64)
}
- expires = e
+ expires = int(e)
}
// Don't overwrite `RefreshToken` with an empty value
// if this was a token refreshing request.
diff --git a/oauth2_test.go b/oauth2_test.go
index 262e7be..6c21043 100644
--- a/oauth2_test.go
+++ b/oauth2_test.go
@@ -128,7 +128,7 @@
t.Errorf("Unexpected exchange payload, %v is found.", string(body))
}
w.Header().Set("Content-Type", "application/json")
- w.Write([]byte(`{"access_token": "90d64460d14870c08c81352a05dedd3465940a7c", "scope": "user", "token_type": "bearer"}`))
+ w.Write([]byte(`{"access_token": "90d64460d14870c08c81352a05dedd3465940a7c", "scope": "user", "token_type": "bearer", "expires_in": 86400}`))
}))
defer ts.Close()
opts := newOpts(ts.URL)
@@ -137,6 +137,9 @@
t.Error(err)
}
tok := tr.Token()
+ if tok.Expiry.IsZero() {
+ t.Errorf("Token expiry should not be zero.")
+ }
if tok.Expired() {
t.Errorf("Token shouldn't be expired.")
}