Documentation
¶
Overview ¶
Package session defines the opertions for supporting user sessions within a power-league application.
Index ¶
Constants ¶
const ( // SessionName is used to update the client session SessionName = "client-session" // AccessTokenKey updates the access token for the current session AccessTokenKey = "access-token" // SessionIDKey sets the ID for each session SessionIDKey = "session-id" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Consumer ¶
type Consumer interface { AuthCodeURL(state string, opts ...oauth2.AuthCodeOption) string Exchange(context.Context, string, ...oauth2.AuthCodeOption) (*oauth2.Token, error) Client(ctx context.Context, token *oauth2.Token) *http.Client }
Consumer is the interface to an OAuth2 consumer
type ConsumerProvider ¶ added in v0.4.0
ConsumerProvider creates Consumers to handle authentication on behalf of a given request
type Manager ¶ added in v0.3.0
type Manager interface { Login(w http.ResponseWriter, r *http.Request) (loginURL string) Authenticate(w http.ResponseWriter, r *http.Request) error Logout(w http.ResponseWriter, r *http.Request) error IsLoggedIn(r *http.Request) bool GetClient(w http.ResponseWriter, r *http.Request) (*goff.Client, error) }
Manager provides an interface to managing sessions for power rankings users
func NewManager ¶ added in v0.3.0
func NewManager(cp ConsumerProvider, s sessions.Store) Manager
NewManager creates a new Manager that uses the given consumer for OAuth authentication and store to persist the sessions across requests. Each session client returned by `Manager.GetClient` will cache responses for up to 6 hours.
See NewManagerWithCache
func NewManagerWithCache ¶ added in v0.3.0
func NewManagerWithCache( cp ConsumerProvider, s sessions.Store, userCacheDurationSeconds int, cacheSize int64) Manager
NewManagerWithCache creates a new Manager that uses the given consumer provider for OAuth authentication and store to persist the sessions across requests. Each session client returned by `Manager.GetClient` will cache responses for up to `userCacheDurationSeconds` seconds.