Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // HmacSecret is generated randomly on startup and used to encode JWTs HmacSecret string )
Functions ¶
This section is empty.
Types ¶
type APITokenClaims ¶
type APITokenClaims struct {
Email string `json:"email,omitempty"`
Randomizer int `json:"randomizer,omitempty"`
jwt.StandardClaims
}
APITokenClaims represents the claims stored in a Pure1 Unplugged API token
type APITokenStore ¶
type APITokenStore interface {
// GenerateAPIToken generates a new API token for long-term use
GenerateAPIToken(userID string, email string) (string, error)
// GenerateSessionToken generates a token for a user session (short-lived)
GenerateSessionToken(userID string, email string) (string, error)
// GetAPITokenNames gets a list of all API token names in this store
GetAPITokenNames() []string
// ContainsAPIToken checks if this APITokenStore contains an API token with this name
ContainsAPIToken(tokenName string) bool
// GetUserForToken fetches which user this token represents. If the given token doesn't exist, returns an error
GetUserForToken(apiToken string) (string, error)
// StoreAPIToken registers an API token in this store mapped to the given user. WARNING: this WILL overwrite
// existing token names, api tokens, or users (and thus can be used for upserts), check all relevant methods
// before calling this
StoreAPIToken(tokenName string, apiToken string, userID string) error
// DeleteAPIToken deletes the API token with the given name. Note that "this token doesn't exist" is NOT an
// error
DeleteAPIToken(tokenName string) error
// HasUserCredentials checks if this user's OAuth token is stored in this token store
HasUserCredentials(userID string) bool
// Remove this user from the mapping. This is usually called if a refresh fails and we want to remove it so we can
// re-authenticate on next login (this way the user doesn't get locked out with bad credentials)
InvalidateUser(userID string) error
// StoreUser associates the given userID with their OAuth token. If the given user already has an OAuth token stored,
// returns an error. WARNING: this WILL overwrite existing user IDs and tokens, this functions as an upsert.
StoreUser(userID string, token *oauth2.Token) error
// GetTokenForUser gets the OAuth token for the given user
GetTokenForUser(userID string) (*oauth2.Token, error)
}
APITokenStore provides an interface for all operations involved with API tokens and their persistence
Click to show internal directories.
Click to hide internal directories.