summaryrefslogtreecommitdiff
path: root/internal/oauth/token.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/oauth/token.go')
-rw-r--r--internal/oauth/token.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/internal/oauth/token.go b/internal/oauth/token.go
new file mode 100644
index 0000000..8ceb9a8
--- /dev/null
+++ b/internal/oauth/token.go
@@ -0,0 +1,37 @@
+package oauth
+
+import "time"
+
+// OAuthTokenResponse defines the OAuth response from the server that includes the tokens.
+type OAuthTokenResponse struct {
+ // Access is the access token returned by the server
+ Access string `json:"access_token"`
+
+ // Refresh token is the refresh token returned by the server
+ Refresh string `json:"refresh_token"`
+
+ // Type indicates which type of tokens we have
+ Type string `json:"token_type"`
+
+ // Expires is the expires time returned by the server
+ Expires int64 `json:"expires_in"`
+
+}
+
+// OAuthToken is a structure that contains our access and refresh tokens and a timestamp when they expire.
+type OAuthToken struct {
+ // Access is the access token returned by the server
+ access string
+
+ // Refresh token is the refresh token returned by the server
+ refresh string
+
+ // ExpiredTimestamp is the Expires field but converted to a Go timestamp
+ expiredTimestamp time.Time
+}
+
+// Expired checks if the access token is expired.
+func (tokens *OAuthToken) Expired() bool {
+ currentTime := time.Now()
+ return !currentTime.Before(tokens.expiredTimestamp)
+}