Documentation ¶
Index ¶
- Variables
- type AuthorizationCodeRequest
- func (a AuthorizationCodeRequest) GetClientID() string
- func (a AuthorizationCodeRequest) GetCode() string
- func (a AuthorizationCodeRequest) GetCodeChallenge() string
- func (a AuthorizationCodeRequest) GetCodeChallengeMethod() string
- func (a AuthorizationCodeRequest) GetScope() *Scope
- func (a AuthorizationCodeRequest) SetClientID(id string)
- func (a AuthorizationCodeRequest) SetCode(code string)
- func (a AuthorizationCodeRequest) SetCodeChallenge(challenge string)
- func (a AuthorizationCodeRequest) SetCodeChallengeMethod(method string)
- func (a AuthorizationCodeRequest) SetScope(scope *Scope)
- type AuthorizationCodeRequestStorage
- type Client
- func (c Client) AddRedirectURL(u string)
- func (c Client) ClearRedirectURLS()
- func (c Client) GetApplicationName() string
- func (c Client) GetID() string
- func (c Client) GetRedirectURLs() []string
- func (c Client) GetSecret() string
- func (c Client) HasRedirectURL(u string) bool
- func (c Client) IsConfidential() bool
- func (c Client) RemoveRedirectURL(u string)
- func (c Client) SetApplicationName(appName string)
- func (c Client) SetConfidential(b bool)
- func (c Client) SetID(id string)
- func (c Client) SetRedirectURLs(urls []string)
- func (c Client) SetSecret(s string)
- func (c Client) String() string
- type ClientStorage
- type DeviceCodeRequest
- func (d DeviceCodeRequest) GetClientID() string
- func (d DeviceCodeRequest) GetResponse() DeviceCodeResponse
- func (d DeviceCodeRequest) GetTokenResponse() Token
- func (d DeviceCodeRequest) SetClientID(id string)
- func (d DeviceCodeRequest) SetResponse(response DeviceCodeResponse)
- func (d DeviceCodeRequest) SetTokenResponse(token Token)
- type DeviceCodeRequestStorage
- func (dcrs *DeviceCodeRequestStorage) Add(request OAuth2DeviceCodeRequest) error
- func (dcrs *DeviceCodeRequestStorage) Close() error
- func (dcrs *DeviceCodeRequestStorage) Find(deviceCode, clientID string) (OAuth2DeviceCodeRequest, error)
- func (dcrs *DeviceCodeRequestStorage) Get(userCode string) (OAuth2DeviceCodeRequest, error)
- func (dcrs *DeviceCodeRequestStorage) Update(request OAuth2DeviceCodeRequest) error
- type DeviceCodeResponse
- type DeviceCodeStorage
- type MemoryAuthorizationCodeRequestStorage
- type MemoryClientStorage
- func (cs *MemoryClientStorage) Add(client OAuth2Client) error
- func (_ *MemoryClientStorage) Close() error
- func (cs *MemoryClientStorage) Edit(client OAuth2Client) error
- func (cs *MemoryClientStorage) Get(id string) (OAuth2Client, error)
- func (cs *MemoryClientStorage) Remove(client OAuth2Client) error
- type MemorySessionStorage
- type MemoryTokenStorage
- func (ts *MemoryTokenStorage) Add(t OAuth2Token) error
- func (_ *MemoryTokenStorage) Close() error
- func (ts *MemoryTokenStorage) FindByAccessToken(at string) (OAuth2Token, error)
- func (ts *MemoryTokenStorage) FindByCodeChallenge(cc string) (OAuth2Token, error)
- func (ts *MemoryTokenStorage) Remove(t OAuth2Token) error
- type MemoryUserStorage
- func (us *MemoryUserStorage) Add(user OAuth2User) error
- func (s *MemoryUserStorage) Close() error
- func (us *MemoryUserStorage) Edit(user OAuth2User) error
- func (us *MemoryUserStorage) Get(id uint) (OAuth2User, error)
- func (us *MemoryUserStorage) GetByUsername(name string) (OAuth2User, error)
- func (us *MemoryUserStorage) Remove(id uint) error
- type OAuth2AuthorizationCodeRequest
- type OAuth2Client
- type OAuth2DeviceCodeRequest
- type OAuth2Session
- type OAuth2Token
- type OAuth2User
- type Scope
- type Session
- type SessionStorage
- type Token
- func (t Token) GetAccessToken() string
- func (t Token) GetAuthorizationCode() string
- func (t Token) GetClientID() string
- func (t Token) GetCodeChallenge() string
- func (t Token) GetExpiresIn() uint64
- func (t Token) GetRefreshToken() string
- func (t Token) GetScope() *Scope
- func (t Token) GetState() string
- func (t Token) GetTokenType() string
- func (t Token) SetAccessToken(at string)
- func (t Token) SetAuthorizationCode(ac string)
- func (t Token) SetClientID(id string)
- func (t Token) SetCodeChallenge(cc string)
- func (t Token) SetExpiresIn(ex uint64)
- func (t Token) SetRawScope(raw string)
- func (t Token) SetRefreshToken(rt string)
- func (t Token) SetScope(scope *Scope)
- func (t Token) SetState(s string)
- func (t Token) SetTokenType(tt string)
- type TokenStorage
- type User
- func (u User) DoesPasswordMatch(password string) bool
- func (u User) GetEmail() string
- func (u User) GetID() uint
- func (u User) GetPassword() string
- func (u User) GetUsername() string
- func (u User) IsDisabled() bool
- func (u User) SetDisabled(d bool)
- func (u User) SetEmail(email string)
- func (u User) SetID(id uint)
- func (u User) SetPassword(password string)
- func (u User) SetUsername(username string)
- type UserStorage
Constants ¶
This section is empty.
Variables ¶
var ( ErrAuthorizationCodeRequestEntryExists = errors.New("authorization code request entry with this ID already exists") ErrAuthorizationCodeRequestEntryNotFound = errors.New("authorization code request entry not found") )
var ( ErrClientEntryExists = errors.New("client entry with this ID already exists") ErrClientEntryNotFound = errors.New("client entry not found") )
var ( ErrDeviceCodeRequestEntryExists = errors.New("DeviceCodeRequest entry with this ID already exists") ErrDeviceCodeRequestEntryNotFound = errors.New("DeviceCodeRequest entry not found") )
var ( ErrSessionEntryExists = errors.New("session entry with this ID already exists") ErrSessionEntryNotFound = errors.New("session entry not found") )
var ( ErrTokenEntryExists = errors.New("token entry with this access string already exists") ErrTokenEntryNotFound = errors.New("token entry not found") )
var ( ErrUserEntryExists = errors.New("user entry with this ID already exists") ErrUserEntryNotFound = errors.New("user entry not found") )
Functions ¶
This section is empty.
Types ¶
type AuthorizationCodeRequest ¶
type AuthorizationCodeRequest struct { ClientID string Code string Scope *Scope CodeChallenge string CodeChallengeMethod string }
func (AuthorizationCodeRequest) GetClientID ¶
func (a AuthorizationCodeRequest) GetClientID() string
func (AuthorizationCodeRequest) GetCode ¶
func (a AuthorizationCodeRequest) GetCode() string
func (AuthorizationCodeRequest) GetCodeChallenge ¶
func (a AuthorizationCodeRequest) GetCodeChallenge() string
func (AuthorizationCodeRequest) GetCodeChallengeMethod ¶
func (a AuthorizationCodeRequest) GetCodeChallengeMethod() string
func (AuthorizationCodeRequest) GetScope ¶
func (a AuthorizationCodeRequest) GetScope() *Scope
func (AuthorizationCodeRequest) SetClientID ¶
func (a AuthorizationCodeRequest) SetClientID(id string)
func (AuthorizationCodeRequest) SetCode ¶
func (a AuthorizationCodeRequest) SetCode(code string)
func (AuthorizationCodeRequest) SetCodeChallenge ¶
func (a AuthorizationCodeRequest) SetCodeChallenge(challenge string)
func (AuthorizationCodeRequest) SetCodeChallengeMethod ¶
func (a AuthorizationCodeRequest) SetCodeChallengeMethod(method string)
func (AuthorizationCodeRequest) SetScope ¶
func (a AuthorizationCodeRequest) SetScope(scope *Scope)
type AuthorizationCodeRequestStorage ¶
type AuthorizationCodeRequestStorage interface { Pop(string) (OAuth2AuthorizationCodeRequest, error) Insert(OAuth2AuthorizationCodeRequest) error Close() error }
AuthorizationCodeRequestStorage stores Authorization code requests. For in-memory implementations, Close() should be a no-op.
type Client ¶
type Client struct { ID string Secret string Confidential bool AppName string RedirectURLs []string }
A Client represents an application. A Client's ID must be unique.
func (Client) AddRedirectURL ¶
func (Client) ClearRedirectURLS ¶
func (c Client) ClearRedirectURLS()
func (Client) GetApplicationName ¶
func (Client) GetRedirectURLs ¶ added in v0.1.0
func (Client) HasRedirectURL ¶
func (Client) IsConfidential ¶
func (Client) RemoveRedirectURL ¶
func (Client) SetApplicationName ¶
func (Client) SetConfidential ¶
func (Client) SetRedirectURLs ¶ added in v0.1.0
type ClientStorage ¶
type ClientStorage interface { Get(string) (OAuth2Client, error) Add(OAuth2Client) error Edit(OAuth2Client) error Remove(OAuth2Client) error Close() error }
ClientStorage is the interface that must be implemented to act as a client storage For in-memory implementations, Close() should be a no-op.
type DeviceCodeRequest ¶
type DeviceCodeRequest struct { ClientID string Response DeviceCodeResponse TokenResponse Token }
func (DeviceCodeRequest) GetClientID ¶
func (d DeviceCodeRequest) GetClientID() string
func (DeviceCodeRequest) GetResponse ¶
func (d DeviceCodeRequest) GetResponse() DeviceCodeResponse
func (DeviceCodeRequest) GetTokenResponse ¶
func (d DeviceCodeRequest) GetTokenResponse() Token
func (DeviceCodeRequest) SetClientID ¶
func (d DeviceCodeRequest) SetClientID(id string)
func (DeviceCodeRequest) SetResponse ¶
func (d DeviceCodeRequest) SetResponse(response DeviceCodeResponse)
func (DeviceCodeRequest) SetTokenResponse ¶
func (d DeviceCodeRequest) SetTokenResponse(token Token)
type DeviceCodeRequestStorage ¶
type DeviceCodeRequestStorage struct {
// contains filtered or unexported fields
}
func NewMemoryDeviceCodeRequestStorage ¶
func NewMemoryDeviceCodeRequestStorage() *DeviceCodeRequestStorage
func (*DeviceCodeRequestStorage) Add ¶
func (dcrs *DeviceCodeRequestStorage) Add(request OAuth2DeviceCodeRequest) error
func (*DeviceCodeRequestStorage) Close ¶
func (dcrs *DeviceCodeRequestStorage) Close() error
func (*DeviceCodeRequestStorage) Find ¶
func (dcrs *DeviceCodeRequestStorage) Find(deviceCode, clientID string) (OAuth2DeviceCodeRequest, error)
func (*DeviceCodeRequestStorage) Get ¶
func (dcrs *DeviceCodeRequestStorage) Get(userCode string) (OAuth2DeviceCodeRequest, error)
func (*DeviceCodeRequestStorage) Update ¶
func (dcrs *DeviceCodeRequestStorage) Update(request OAuth2DeviceCodeRequest) error
type DeviceCodeResponse ¶
type DeviceCodeStorage ¶
type DeviceCodeStorage interface { Get(string) (OAuth2DeviceCodeRequest, error) Find(string, string) (OAuth2DeviceCodeRequest, error) Add(OAuth2DeviceCodeRequest) error Update(OAuth2DeviceCodeRequest) error Close() error }
DeviceCodeStorage stores device codes. For in-memory implementations, Close() should be a no-op.
type MemoryAuthorizationCodeRequestStorage ¶
type MemoryAuthorizationCodeRequestStorage struct {
// contains filtered or unexported fields
}
func NewMemoryAuthorizationCodeRequestStorage ¶
func NewMemoryAuthorizationCodeRequestStorage() *MemoryAuthorizationCodeRequestStorage
func (*MemoryAuthorizationCodeRequestStorage) Close ¶
func (_ *MemoryAuthorizationCodeRequestStorage) Close() error
func (*MemoryAuthorizationCodeRequestStorage) Insert ¶
func (s *MemoryAuthorizationCodeRequestStorage) Insert(request OAuth2AuthorizationCodeRequest) error
func (*MemoryAuthorizationCodeRequestStorage) Pop ¶
func (s *MemoryAuthorizationCodeRequestStorage) Pop(code string) (OAuth2AuthorizationCodeRequest, error)
type MemoryClientStorage ¶
type MemoryClientStorage struct {
// contains filtered or unexported fields
}
func NewMemoryClientStorage ¶
func NewMemoryClientStorage() *MemoryClientStorage
func (*MemoryClientStorage) Add ¶
func (cs *MemoryClientStorage) Add(client OAuth2Client) error
func (*MemoryClientStorage) Close ¶
func (_ *MemoryClientStorage) Close() error
func (*MemoryClientStorage) Edit ¶
func (cs *MemoryClientStorage) Edit(client OAuth2Client) error
func (*MemoryClientStorage) Get ¶
func (cs *MemoryClientStorage) Get(id string) (OAuth2Client, error)
func (*MemoryClientStorage) Remove ¶
func (cs *MemoryClientStorage) Remove(client OAuth2Client) error
type MemorySessionStorage ¶
type MemorySessionStorage struct {
// contains filtered or unexported fields
}
func NewMemorySessionStorage ¶
func NewMemorySessionStorage() *MemorySessionStorage
func (*MemorySessionStorage) Add ¶
func (ss *MemorySessionStorage) Add(session OAuth2Session) error
func (*MemorySessionStorage) Close ¶
func (_ *MemorySessionStorage) Close() error
func (*MemorySessionStorage) Get ¶
func (ss *MemorySessionStorage) Get(id string) (OAuth2Session, error)
func (*MemorySessionStorage) Remove ¶
func (ss *MemorySessionStorage) Remove(id string) error
type MemoryTokenStorage ¶
type MemoryTokenStorage struct {
// contains filtered or unexported fields
}
func NewMemoryTokenStorage ¶
func NewMemoryTokenStorage() *MemoryTokenStorage
func (*MemoryTokenStorage) Add ¶ added in v0.2.0
func (ts *MemoryTokenStorage) Add(t OAuth2Token) error
func (*MemoryTokenStorage) Close ¶
func (_ *MemoryTokenStorage) Close() error
func (*MemoryTokenStorage) FindByAccessToken ¶
func (ts *MemoryTokenStorage) FindByAccessToken(at string) (OAuth2Token, error)
func (*MemoryTokenStorage) FindByCodeChallenge ¶
func (ts *MemoryTokenStorage) FindByCodeChallenge(cc string) (OAuth2Token, error)
func (*MemoryTokenStorage) Remove ¶
func (ts *MemoryTokenStorage) Remove(t OAuth2Token) error
type MemoryUserStorage ¶
type MemoryUserStorage struct {
// contains filtered or unexported fields
}
func NewMemoryUserStorage ¶
func NewMemoryUserStorage() *MemoryUserStorage
func (*MemoryUserStorage) Add ¶
func (us *MemoryUserStorage) Add(user OAuth2User) error
func (*MemoryUserStorage) Close ¶
func (s *MemoryUserStorage) Close() error
func (*MemoryUserStorage) Edit ¶
func (us *MemoryUserStorage) Edit(user OAuth2User) error
func (*MemoryUserStorage) Get ¶
func (us *MemoryUserStorage) Get(id uint) (OAuth2User, error)
func (*MemoryUserStorage) GetByUsername ¶
func (us *MemoryUserStorage) GetByUsername(name string) (OAuth2User, error)
func (*MemoryUserStorage) Remove ¶
func (us *MemoryUserStorage) Remove(id uint) error
type OAuth2Client ¶
type OAuth2Client interface { GetID() string SetID(string) GetSecret() string SetSecret(string) IsConfidential() bool SetConfidential(bool) GetApplicationName() string SetApplicationName(string) HasRedirectURL(string) bool AddRedirectURL(string) RemoveRedirectURL(string) GetRedirectURLs() []string SetRedirectURLs([]string) ClearRedirectURLS() }
type OAuth2DeviceCodeRequest ¶
type OAuth2DeviceCodeRequest interface { GetClientID() string SetClientID(string) GetResponse() DeviceCodeResponse SetResponse(DeviceCodeResponse) GetTokenResponse() Token SetTokenResponse(Token) }
type OAuth2Session ¶
type OAuth2Token ¶
type OAuth2Token interface { GetClientID() string SetClientID(string) GetAccessToken() string SetAccessToken(string) GetTokenType() string SetTokenType(string) GetExpiresIn() uint64 SetExpiresIn(uint64) GetRefreshToken() string SetRefreshToken(string) GetScope() *Scope SetScope(*Scope) SetRawScope(s string) GetState() string SetState(string) GetCodeChallenge() string SetCodeChallenge(string) GetAuthorizationCode() string SetAuthorizationCode(string) }
An OAuth2Token represents the (meta)data related to a successfully executed authorization process. You can use your own implementation or the existing Token{}.
type OAuth2User ¶
type SessionStorage ¶
type SessionStorage interface { Get(string) (OAuth2Session, error) Add(OAuth2Session) error Remove(string) error Close() error }
A SessionStorage stores sessions and related meta information. For in-memory implementations, Close() should be a no-op.
type Token ¶
type Token struct { ClientID string `json:"-"` AccessToken string `json:"access_token"` TokenType string `json:"token_type"` ExpiresIn uint64 `json:"expires_in"` RefreshToken string `json:"refresh_token,omitempty"` Scope *Scope `json:"scope,omitempty"` State string `json:"state,omitempty"` CodeChallenge string `json:"code_challenge,omitempty"` AuthorizationCode string `json:"authorization_code,omitempty"` }
A Token is a ready-to-use implementation of the OAuth2Token interface.
func (Token) GetAccessToken ¶
func (Token) GetAuthorizationCode ¶
func (Token) GetClientID ¶
func (Token) GetCodeChallenge ¶
func (Token) GetExpiresIn ¶
func (Token) GetRefreshToken ¶
func (Token) GetTokenType ¶
func (Token) SetAccessToken ¶
func (Token) SetAuthorizationCode ¶
func (Token) SetClientID ¶
func (Token) SetCodeChallenge ¶
func (Token) SetExpiresIn ¶
func (Token) SetRawScope ¶
func (Token) SetRefreshToken ¶
func (Token) SetTokenType ¶
type TokenStorage ¶
type TokenStorage interface { FindByCodeChallenge(string) (OAuth2Token, error) FindByAccessToken(string) (OAuth2Token, error) Add(OAuth2Token) error Remove(OAuth2Token) error Close() error }
A TokenStorage takes care of storing a supplied token associated with the given client ID. A token must be unique. For in-memory implementations, Close() should be a no-op.
type User ¶
A User represents a resource owner.
func (User) DoesPasswordMatch ¶
func (User) GetPassword ¶
func (User) GetUsername ¶
func (User) IsDisabled ¶
func (User) SetDisabled ¶
func (User) SetPassword ¶
func (User) SetUsername ¶
type UserStorage ¶
type UserStorage interface { Get(id uint) (OAuth2User, error) GetByUsername(name string) (OAuth2User, error) Add(user OAuth2User) error Edit(user OAuth2User) error Remove(id uint) error Close() error }
A UserStorage stores information about users (resource owners). For in-memory implementations, Close() should be a no-op.
Source Files ¶
- authorizationCodeRequest.go
- authorizationCodeRequestStorage.go
- client.go
- clientStorage.go
- deviceCodeRequest.go
- deviceCodeRequestStorage.go
- memoryAuthorizationCodeRequestStorage.go
- memoryClientStorage.go
- memoryDeviceCodeRequestStorage.go
- memorySessionStorage.go
- memoryTokenStorage.go
- memoryUserStorage.go
- scope.go
- session.go
- sessionStorage.go
- token.go
- tokenStorage.go
- user.go
- userStorage.go