Documentation ¶
Index ¶
- func Sync(dataStore *gorm.DB) *gorm.DB
- type BaseStore
- type OauthAccessToken
- type OauthAuthorizeCode
- type OauthClient
- func (c *OauthClient) GetCreatedAt() time.Time
- func (c *OauthClient) GetGrantTypes() []string
- func (c *OauthClient) GetID() string
- func (c *OauthClient) GetLastUsed() time.Time
- func (c *OauthClient) GetName() string
- func (c *OauthClient) GetRedirectURIs() []string
- func (c *OauthClient) GetResponseTypes() []string
- func (c *OauthClient) GetScopes() []string
- func (c *OauthClient) GetSecret() string
- func (c *OauthClient) GetUserData() interface{}
- func (c *OauthClient) IsPublic() bool
- func (c *OauthClient) SetGrantTypes(grantTypes []string)
- func (c *OauthClient) SetID(id string)
- func (c *OauthClient) SetLastUsed(t time.Time)
- func (c *OauthClient) SetRedirectURIs(redirectURIs []string)
- func (c *OauthClient) SetResponseTypes(responseTypes []string)
- func (c *OauthClient) SetScopes(scopes []string)
- func (c *OauthClient) SetSecret(secret string)
- func (c *OauthClient) SetUserData(userData string)
- type OauthRefreshToken
- type OauthRequest
- func (c *OauthRequest) AppendRequestedScope(scope string)
- func (or *OauthRequest) GetClient() interface{}
- func (or *OauthRequest) GetExpiresAt() time.Time
- func (c *OauthRequest) GetGrantedScopes() []string
- func (or *OauthRequest) GetRequestID() string
- func (or *OauthRequest) GetRequestedAt() time.Time
- func (c *OauthRequest) GetRequestedScopes() []string
- func (or *OauthRequest) GetSession() interface{}
- func (c *OauthRequest) GrantScope(scope string)
- func (c *OauthRequest) Merge(a interface{})
- func (c *OauthRequest) SetGrantedScopes(scopes []string)
- func (or *OauthRequest) SetRequestID(id string)
- func (c *OauthRequest) SetRequestedScopes(scopes []string)
- type OauthSession
- func (s *OauthSession) Clone() interface{}
- func (s *OauthSession) GetAccessExpiry() time.Time
- func (s *OauthSession) GetAuthorizeExpiry() time.Time
- func (s *OauthSession) GetIDExpiry() time.Time
- func (s *OauthSession) GetRefreshExpiry() time.Time
- func (s *OauthSession) GetSession() interface{}
- func (s *OauthSession) GetSubject() string
- func (s *OauthSession) GetUserID() string
- func (s *OauthSession) GetUsername() string
- func (s *OauthSession) SetAccessExpiry(t time.Time)
- func (s *OauthSession) SetAuthorizeExpiry(t time.Time)
- func (s *OauthSession) SetIDExpiry(t time.Time)
- func (s *OauthSession) SetRefreshExpiry(t time.Time)
- type OauthStore
- func (os *OauthStore) AddAccessTokenSession(userID, clientID, signature, requestID string, ...) (interface{}, error)
- func (oauthStore *OauthStore) AddAuthorizeCodeSession(userID, clientID, code, requestID string, requestedAt, expiresAt time.Time, ...) (interface{}, error)
- func (oauthStore *OauthStore) AddClient(userID, clientID, clientName, secret string, ...) (interface{}, error)
- func (os *OauthStore) AddRefreshTokenSession(userID, clientID, signature, requestID string, ...) (interface{}, error)
- func (os *OauthStore) GetAccessTokenSession(signature string) (interface{}, error)
- func (os *OauthStore) GetAccessTokenSessionByRequestID(requestID string) (interface{}, error)
- func (os *OauthStore) GetAccessTokenSessionsByUserID(userID string) ([]interface{}, error)
- func (oauthStore *OauthStore) GetAuthorizeCodeSession(code string) (interface{}, error)
- func (oauthStore *OauthStore) GetAuthorizeCodeSessionByRequestID(requestID string) (interface{}, error)
- func (os *OauthStore) GetAuthorizeCodeSessionsByUserID(userID string) ([]interface{}, error)
- func (os *OauthStore) GetClientByAccessTokenSession(signature string) (interface{}, error)
- func (oauthStore *OauthStore) GetClientByID(clientID string) (interface{}, error)
- func (os *OauthStore) GetClientByRefreshToken(signature string) (interface{}, error)
- func (oauthStore *OauthStore) GetClientsByUserID(userID string) ([]interface{}, error)
- func (os *OauthStore) GetRefreshTokenBySignature(signature string) (interface{}, error)
- func (os *OauthStore) GetRefreshTokenSessionByRequestID(requestID string) (interface{}, error)
- func (os *OauthStore) GetRefreshTokenSessionsByUserID(userID string) ([]interface{}, error)
- func (os *OauthStore) RemoveAccessTokenSession(signature string) error
- func (oauthStore *OauthStore) RemoveAuthorizeCodeSession(code string) error
- func (oauthStore *OauthStore) RemoveClientByID(clientID string) error
- func (os *OauthStore) RemoveRefreshToken(signature string) error
- func (os *OauthStore) Sync(force bool) *gorm.DB
- func (oauthStore *OauthStore) UpdateClient(client interface{}) (interface{}, error)
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BaseStore ¶
BaseStore is the interface required by the oauth module for underlying storage This defines required non-oauth methods
type OauthAccessToken ¶
type OauthAccessToken struct { gorm.Model UserID uint ClientID uint Signature string OauthRequest OauthSession }
OauthAccessToken Oauth Access token session
func (*OauthAccessToken) GetSession ¶
func (oa *OauthAccessToken) GetSession() interface{}
func (*OauthAccessToken) GetSignature ¶
func (oa *OauthAccessToken) GetSignature() string
func (*OauthAccessToken) SetSession ¶
func (oa *OauthAccessToken) SetSession(session interface{})
type OauthAuthorizeCode ¶
type OauthAuthorizeCode struct { gorm.Model ClientID uint UserID uint Code string // Authorization code Challenge string // Optional code_challenge as described in rfc7636 ChallengeMethod string // Optional code_challenge_method as described in rfc7636 OauthRequest OauthSession }
OauthAuthorizeCode Authorization data
func (*OauthAuthorizeCode) GetCode ¶
func (oa *OauthAuthorizeCode) GetCode() string
func (*OauthAuthorizeCode) GetSession ¶
func (oa *OauthAuthorizeCode) GetSession() interface{}
func (*OauthAuthorizeCode) SetSession ¶
func (oa *OauthAuthorizeCode) SetSession(session interface{})
type OauthClient ¶
type OauthClient struct { ID uint `gorm:"primary_key" description:"Internal Database ID"` CreatedAt time.Time `description:"Creation time"` UpdatedAt time.Time `description:"Last update time"` ClientID string `gorm:"unique"` Name string `gorm:"unique"` UserID uint LastUsed time.Time Secret string Scopes string RedirectURIs string GrantTypes string ResponseTypes string UserData string Public bool }
OauthClient is a client application registration
func (*OauthClient) GetCreatedAt ¶
func (c *OauthClient) GetCreatedAt() time.Time
func (*OauthClient) GetGrantTypes ¶
func (c *OauthClient) GetGrantTypes() []string
func (*OauthClient) GetID ¶
func (c *OauthClient) GetID() string
func (*OauthClient) GetLastUsed ¶
func (c *OauthClient) GetLastUsed() time.Time
func (*OauthClient) GetName ¶
func (c *OauthClient) GetName() string
func (*OauthClient) GetRedirectURIs ¶
func (c *OauthClient) GetRedirectURIs() []string
func (*OauthClient) GetResponseTypes ¶
func (c *OauthClient) GetResponseTypes() []string
func (*OauthClient) GetScopes ¶
func (c *OauthClient) GetScopes() []string
func (*OauthClient) GetSecret ¶
func (c *OauthClient) GetSecret() string
func (*OauthClient) GetUserData ¶
func (c *OauthClient) GetUserData() interface{}
func (*OauthClient) IsPublic ¶
func (c *OauthClient) IsPublic() bool
func (*OauthClient) SetGrantTypes ¶
func (c *OauthClient) SetGrantTypes(grantTypes []string)
func (*OauthClient) SetID ¶
func (c *OauthClient) SetID(id string)
func (*OauthClient) SetLastUsed ¶
func (c *OauthClient) SetLastUsed(t time.Time)
func (*OauthClient) SetRedirectURIs ¶
func (c *OauthClient) SetRedirectURIs(redirectURIs []string)
func (*OauthClient) SetResponseTypes ¶
func (c *OauthClient) SetResponseTypes(responseTypes []string)
func (*OauthClient) SetScopes ¶
func (c *OauthClient) SetScopes(scopes []string)
func (*OauthClient) SetSecret ¶
func (c *OauthClient) SetSecret(secret string)
func (*OauthClient) SetUserData ¶
func (c *OauthClient) SetUserData(userData string)
type OauthRefreshToken ¶
type OauthRefreshToken struct { gorm.Model UserID uint ClientID uint Signature string OauthRequest OauthSession }
OauthRefreshToken Refresh token storage
func (*OauthRefreshToken) GetSession ¶
func (or *OauthRefreshToken) GetSession() interface{}
func (*OauthRefreshToken) GetSignature ¶
func (or *OauthRefreshToken) GetSignature() string
GetSignature fetches the Refresh token signature
func (*OauthRefreshToken) SetSession ¶
func (or *OauthRefreshToken) SetSession(session interface{})
type OauthRequest ¶
type OauthRequest struct { RequestID string RequestedAt time.Time ExpiresAt time.Time RequestedScopes string GrantedScopes string Form string Client OauthClient `sql:"-"` Session OauthSession `sql:"-"` }
OauthRequest Base Type This is not stored directly, but used in other oauth types
func (*OauthRequest) AppendRequestedScope ¶
func (c *OauthRequest) AppendRequestedScope(scope string)
func (*OauthRequest) GetClient ¶
func (or *OauthRequest) GetClient() interface{}
func (*OauthRequest) GetExpiresAt ¶
func (or *OauthRequest) GetExpiresAt() time.Time
func (*OauthRequest) GetGrantedScopes ¶
func (c *OauthRequest) GetGrantedScopes() []string
func (*OauthRequest) GetRequestID ¶
func (or *OauthRequest) GetRequestID() string
func (*OauthRequest) GetRequestedAt ¶
func (or *OauthRequest) GetRequestedAt() time.Time
func (*OauthRequest) GetRequestedScopes ¶
func (c *OauthRequest) GetRequestedScopes() []string
func (*OauthRequest) GetSession ¶
func (or *OauthRequest) GetSession() interface{}
func (*OauthRequest) GrantScope ¶
func (c *OauthRequest) GrantScope(scope string)
func (*OauthRequest) Merge ¶
func (c *OauthRequest) Merge(a interface{})
func (*OauthRequest) SetGrantedScopes ¶
func (c *OauthRequest) SetGrantedScopes(scopes []string)
func (*OauthRequest) SetRequestID ¶
func (or *OauthRequest) SetRequestID(id string)
func (*OauthRequest) SetRequestedScopes ¶
func (c *OauthRequest) SetRequestedScopes(scopes []string)
type OauthSession ¶
type OauthSession struct { UserExtID string Username string Subject string AccessExpiry time.Time RefreshExpiry time.Time AuthorizeExpiry time.Time IDExpiry time.Time }
OauthSession session storage base type Used by grants for session storage
func NewSession ¶
func NewSession(userID, username string) OauthSession
NewSession creates an OauthSession
func (*OauthSession) Clone ¶
func (s *OauthSession) Clone() interface{}
func (*OauthSession) GetAccessExpiry ¶
func (s *OauthSession) GetAccessExpiry() time.Time
func (*OauthSession) GetAuthorizeExpiry ¶
func (s *OauthSession) GetAuthorizeExpiry() time.Time
func (*OauthSession) GetIDExpiry ¶
func (s *OauthSession) GetIDExpiry() time.Time
func (*OauthSession) GetRefreshExpiry ¶
func (s *OauthSession) GetRefreshExpiry() time.Time
func (*OauthSession) GetSession ¶
func (s *OauthSession) GetSession() interface{}
func (*OauthSession) GetSubject ¶
func (s *OauthSession) GetSubject() string
func (*OauthSession) GetUserID ¶
func (s *OauthSession) GetUserID() string
func (*OauthSession) GetUsername ¶
func (s *OauthSession) GetUsername() string
func (*OauthSession) SetAccessExpiry ¶
func (s *OauthSession) SetAccessExpiry(t time.Time)
func (*OauthSession) SetAuthorizeExpiry ¶
func (s *OauthSession) SetAuthorizeExpiry(t time.Time)
func (*OauthSession) SetIDExpiry ¶
func (s *OauthSession) SetIDExpiry(t time.Time)
func (*OauthSession) SetRefreshExpiry ¶
func (s *OauthSession) SetRefreshExpiry(t time.Time)
type OauthStore ¶
type OauthStore struct {
// contains filtered or unexported fields
}
OauthStore is a storage instance for OAuth components
func NewOauthStore ¶
func NewOauthStore(db *gorm.DB, baseStore BaseStore) *OauthStore
NewOauthStore creates an oauthstore from a provided gorm.DB and baseStore instance
func (*OauthStore) AddAccessTokenSession ¶
func (*OauthStore) AddAuthorizeCodeSession ¶
func (oauthStore *OauthStore) AddAuthorizeCodeSession(userID, clientID, code, requestID string, requestedAt, expiresAt time.Time, requestedScopes, grantedScopes []string) (interface{}, error)
AddAuthorizeCodeSession creates an authorization code session in the database
func (*OauthStore) AddClient ¶
func (oauthStore *OauthStore) AddClient(userID, clientID, clientName, secret string, scopes, redirects, grantTypes, responseTypes []string, public bool) (interface{}, error)
AddClient adds an OAuth2 client application to the database
func (*OauthStore) AddRefreshTokenSession ¶
func (os *OauthStore) AddRefreshTokenSession(userID, clientID, signature, requestID string, requestedAt, expiresAt time.Time, requestedScopes, grantedScopes []string) (interface{}, error)
AddRefreshTokenSession creates a refresh token session in the database
func (*OauthStore) GetAccessTokenSession ¶
func (os *OauthStore) GetAccessTokenSession(signature string) (interface{}, error)
GetAccessTokenSession Fetch a client from an access token
func (*OauthStore) GetAccessTokenSessionByRequestID ¶
func (os *OauthStore) GetAccessTokenSessionByRequestID(requestID string) (interface{}, error)
GetAccessTokenSessionByRequestID fetch an access token by refresh id
func (*OauthStore) GetAccessTokenSessionsByUserID ¶
func (os *OauthStore) GetAccessTokenSessionsByUserID(userID string) ([]interface{}, error)
GetAccessTokenSessionsByUserID by a user id
func (*OauthStore) GetAuthorizeCodeSession ¶
func (oauthStore *OauthStore) GetAuthorizeCodeSession(code string) (interface{}, error)
GetAuthorizeCodeSession fetches an authorization code session
func (*OauthStore) GetAuthorizeCodeSessionByRequestID ¶
func (oauthStore *OauthStore) GetAuthorizeCodeSessionByRequestID(requestID string) (interface{}, error)
GetAuthorizeCodeSessionByRequestID fetches an authorization code session by the originator request ID
func (*OauthStore) GetAuthorizeCodeSessionsByUserID ¶
func (os *OauthStore) GetAuthorizeCodeSessionsByUserID(userID string) ([]interface{}, error)
func (*OauthStore) GetClientByAccessTokenSession ¶
func (os *OauthStore) GetClientByAccessTokenSession(signature string) (interface{}, error)
GetClientByAccessTokenSession Fetch a client from an access token
func (*OauthStore) GetClientByID ¶
func (oauthStore *OauthStore) GetClientByID(clientID string) (interface{}, error)
GetClientByID an oauth client app by ClientID
func (*OauthStore) GetClientByRefreshToken ¶
func (os *OauthStore) GetClientByRefreshToken(signature string) (interface{}, error)
Fetch a client from an access token
func (*OauthStore) GetClientsByUserID ¶
func (oauthStore *OauthStore) GetClientsByUserID(userID string) ([]interface{}, error)
GetClientsByUserID fetches the OauthClients for a provided userID
func (*OauthStore) GetRefreshTokenBySignature ¶
func (os *OauthStore) GetRefreshTokenBySignature(signature string) (interface{}, error)
Fetch a client from an access token
func (*OauthStore) GetRefreshTokenSessionByRequestID ¶
func (os *OauthStore) GetRefreshTokenSessionByRequestID(requestID string) (interface{}, error)
func (*OauthStore) GetRefreshTokenSessionsByUserID ¶
func (os *OauthStore) GetRefreshTokenSessionsByUserID(userID string) ([]interface{}, error)
func (*OauthStore) RemoveAccessTokenSession ¶
func (os *OauthStore) RemoveAccessTokenSession(signature string) error
RemoveAccessTokenSession Remove an access token by session key
func (*OauthStore) RemoveAuthorizeCodeSession ¶
func (oauthStore *OauthStore) RemoveAuthorizeCodeSession(code string) error
RemoveAuthorizeCodeSession removes an authorization code session using the provided code
func (*OauthStore) RemoveClientByID ¶
func (oauthStore *OauthStore) RemoveClientByID(clientID string) error
RemoveClientByID removes a client application by id
func (*OauthStore) RemoveRefreshToken ¶
func (os *OauthStore) RemoveRefreshToken(signature string) error
func (*OauthStore) Sync ¶
func (os *OauthStore) Sync(force bool) *gorm.DB
Sync Synchronizes the database Force causes existing table to be dropped
func (*OauthStore) UpdateClient ¶
func (oauthStore *OauthStore) UpdateClient(client interface{}) (interface{}, error)
UpdateClient Update a user object