Documentation ¶
Index ¶
Constants ¶
const ( // KindUnknown is used to represent an entry for which we do not recognize the value. KindUnknown = 0 // KindAccessToken represents an access token within the database. KindAccessToken = 1 // KindRefreshToken represents a refresh token within the database. KindRefreshToken = 2 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DB ¶
type DB interface { // OAuthClients returns an API for the oauthclients repository. OAuthClients() OAuthClients // OAuthCodes returns an API for the oauthcodes repository. OAuthCodes() OAuthCodes // OAuthTokens returns an API for the oauthtokens repository. OAuthTokens() OAuthTokens }
DB defines a collection of resources that fall under the scope of OIDC and OAuth operations.
architecture: Database
type OAuthClient ¶
type OAuthClient struct { ID uuid.UUID `json:"id"` Secret []byte `json:"secret"` UserID uuid.UUID `json:"userID"` RedirectURL string `json:"redirectURL"` AppName string `json:"appName"` AppLogoURL string `json:"appLogoURL"` }
OAuthClient defines a concrete representation of an oauth client.
func (OAuthClient) GetDomain ¶
func (o OAuthClient) GetDomain() string
GetDomain returns the allowed redirect url associated with the client.
func (OAuthClient) GetSecret ¶
func (o OAuthClient) GetSecret() string
GetSecret returns the clients secret.
func (OAuthClient) GetUserID ¶
func (o OAuthClient) GetUserID() string
GetUserID returns the owners' user id.
type OAuthClients ¶
type OAuthClients interface { // Get returns the OAuthClient associated with the provided id. Get(ctx context.Context, id uuid.UUID) (OAuthClient, error) // Create creates a new OAuthClient. Create(ctx context.Context, client OAuthClient) error // Update modifies information for the provided OAuthClient. Update(ctx context.Context, client OAuthClient) error // Delete deletes the identified client from the database. Delete(ctx context.Context, id uuid.UUID) error }
OAuthClients defines an interface for creating, updating, and obtaining information about oauth clients known to our system.
type OAuthCode ¶
type OAuthCode struct { ClientID uuid.UUID UserID uuid.UUID Scope string RedirectURL string Challenge string ChallengeMethod string Code string CreatedAt time.Time ExpiresAt time.Time ClaimedAt *time.Time }
OAuthCode represents a code stored within our database.
type OAuthCodes ¶
type OAuthCodes interface { // Get retrieves the OAuthCode for the specified code. Implementations should only return unexpired, unclaimed // codes. Once a code has been claimed, it should be marked as such to prevent future calls from exchanging the // value for an access tokens. Get(ctx context.Context, code string) (OAuthCode, error) // Create creates a new OAuthCode. Create(ctx context.Context, code OAuthCode) error // Claim marks that the provided code has been claimed and should not be issued to another caller. Claim(ctx context.Context, code string) error }
OAuthCodes defines a set of operations allowed to be performed against oauth codes.
type OAuthToken ¶
type OAuthToken struct { ClientID uuid.UUID UserID uuid.UUID Scope string Kind OAuthTokenKind Token string CreatedAt time.Time ExpiresAt time.Time }
OAuthToken represents a token stored within our database (either access / refresh).
type OAuthTokenKind ¶
type OAuthTokenKind int8
OAuthTokenKind defines an enumeration of different types of supported tokens.
type OAuthTokens ¶
type OAuthTokens interface { // Get retrieves the OAuthToken for the specified kind and token value. This can be used to look up either refresh // or access tokens that have not expired. Get(ctx context.Context, kind OAuthTokenKind, token string) (OAuthToken, error) // Create creates a new OAuthToken. If the token already exists, no value is modified and nil is returned. Create(ctx context.Context, token OAuthToken) error }
OAuthTokens defines a set of operations that ca be performed against oauth tokens.