summaryrefslogtreecommitdiff
path: root/internal/oauth/token.go
blob: 31c2c749cd7c7c5157777303833ba9a90872ff48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package oauth

import "time"

// TokenResponse defines the OAuth response from the server that includes the tokens.
type TokenResponse 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"`
}

// Token is a structure that contains our access and refresh tokens and a timestamp when they expire.
type Token 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 *Token) Expired() bool {
	now := time.Now()
	return !now.Before(tokens.expiredTimestamp)
}