Documentation
¶
Index ¶
- Variables
- type Provider
- type ProviderData
- func (p *ProviderData) CookieForSession(s *SessionState, c *cookie.Cipher) (string, error)
- func (p *ProviderData) Data() *ProviderData
- func (p *ProviderData) GetEmailAddress(s *SessionState) (string, error)
- func (p *ProviderData) GetLoginRedirectURL(loginURL url.URL, redirectURI, state string) string
- func (p *ProviderData) GetLoginURL() (*url.URL, error)
- func (p *ProviderData) GetRedeemURL() (*url.URL, error)
- func (p *ProviderData) Redeem(redeemURL *url.URL, redirectURL, code string) (s *SessionState, err error)
- func (p *ProviderData) RefreshSessionIfNeeded(s *SessionState) (bool, error)
- func (p *ProviderData) ReviewUser(name, accessToken, host string) error
- func (p *ProviderData) SessionFromCookie(v string, c *cookie.Cipher) (s *SessionState, err error)
- func (p *ProviderData) ValidateGroup(email string) bool
- func (p *ProviderData) ValidateRequest(_ *http.Request) (*SessionState, error)
- func (p *ProviderData) ValidateSessionState(s *SessionState) bool
- type SessionState
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrPermissionDenied = errors.New("permission denied")
ErrPermissionDenied may be returned from Redeem() to indicate the user is not allowed to login.
Functions ¶
This section is empty.
Types ¶
type Provider ¶
type Provider interface {
Data() *ProviderData
ReviewUser(name, accessToken, host string) error
GetEmailAddress(*SessionState) (string, error)
Redeem(*url.URL, string, string) (*SessionState, error)
ValidateGroup(string) bool
ValidateSessionState(*SessionState) bool
GetLoginRedirectURL(loginURL url.URL, redirectURI, state string) string
RefreshSessionIfNeeded(*SessionState) (bool, error)
SessionFromCookie(string, *cookie.Cipher) (*SessionState, error)
CookieForSession(*SessionState, *cookie.Cipher) (string, error)
ValidateRequest(*http.Request) (*SessionState, error)
GetLoginURL() (*url.URL, error)
GetRedeemURL() (*url.URL, error)
}
type ProviderData ¶
type ProviderData struct {
ProviderName string
ClientID string
ClientSecret string
// Config* attributes are set in the options, if set, these endpoints won't
// be refetched
ConfigLoginURL *url.URL
ConfigRedeemURL *url.URL
ValidateURL *url.URL
ProfileURL *url.URL
ProtectedResource *url.URL
Scope string
ApprovalPrompt string
}
func (*ProviderData) CookieForSession ¶
func (p *ProviderData) CookieForSession(s *SessionState, c *cookie.Cipher) (string, error)
CookieForSession serializes a session state for storage in a cookie
func (*ProviderData) Data ¶
func (p *ProviderData) Data() *ProviderData
func (*ProviderData) GetEmailAddress ¶
func (p *ProviderData) GetEmailAddress(s *SessionState) (string, error)
func (*ProviderData) GetLoginRedirectURL ¶
func (p *ProviderData) GetLoginRedirectURL(loginURL url.URL, redirectURI, state string) string
GetLoginRedirectURL with typical oauth parameters
func (*ProviderData) GetLoginURL ¶
func (p *ProviderData) GetLoginURL() (*url.URL, error)
func (*ProviderData) GetRedeemURL ¶
func (p *ProviderData) GetRedeemURL() (*url.URL, error)
func (*ProviderData) Redeem ¶
func (p *ProviderData) Redeem(redeemURL *url.URL, redirectURL, code string) (s *SessionState, err error)
func (*ProviderData) RefreshSessionIfNeeded ¶
func (p *ProviderData) RefreshSessionIfNeeded(s *SessionState) (bool, error)
RefreshSessionIfNeeded
func (*ProviderData) ReviewUser ¶
func (p *ProviderData) ReviewUser(name, accessToken, host string) error
func (*ProviderData) SessionFromCookie ¶
func (p *ProviderData) SessionFromCookie(v string, c *cookie.Cipher) (s *SessionState, err error)
SessionFromCookie deserializes a session from a cookie value
func (*ProviderData) ValidateGroup ¶
func (p *ProviderData) ValidateGroup(email string) bool
ValidateGroup validates that the provided email exists in the configured provider email group(s).
func (*ProviderData) ValidateRequest ¶
func (p *ProviderData) ValidateRequest(_ *http.Request) (*SessionState, error)
func (*ProviderData) ValidateSessionState ¶
func (p *ProviderData) ValidateSessionState(s *SessionState) bool
type SessionState ¶
type SessionState struct {
AccessToken string
ExpiresOn time.Time
RefreshToken string
Email string
User string
Groups []string
}
func DecodeSessionState ¶
func DecodeSessionState(v string, c *cookie.Cipher) (s *SessionState, err error)
func (*SessionState) EncodeSessionState ¶
func (s *SessionState) EncodeSessionState(c *cookie.Cipher) (string, error)
func (*SessionState) EncryptedString ¶
func (s *SessionState) EncryptedString(c *cookie.Cipher) (string, error)
func (*SessionState) IsExpired ¶
func (s *SessionState) IsExpired() bool
func (*SessionState) String ¶
func (s *SessionState) String() string
Source Files
¶
Click to show internal directories.
Click to hide internal directories.