session

package
v0.5.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 1, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CtxTokenHeaderKey     = "token_header"
	CtxDisableRedirectKey = "disable_redirect"
)

Variables

View Source
var (
	TokenKey    = "token"
	ProviderKey = "provider"
)
View Source
var GlobalRegistry = &Registry{
	Store: make(map[string]*Session),
}

Functions

This section is empty.

Types

type Action added in v0.5.7

type Action struct {
	Active string `cfg:"active"`
	Token  *Token `cfg:"token"`
}

type AuthHeaderStyle added in v0.5.8

type AuthHeaderStyle int

AuthHeaderStyle is a type to set Authorization header style.

const (
	AuthHeaderStyleBasic AuthHeaderStyle = iota
	AuthHeaderStyleBearerSecret
	AuthHeaderStyleParams
)

type Information

type Information struct {
	// Values list to store in the cookie like "preferred_username", "given_name", "family_name", "sid", "azp", "aud"
	Values []string `cfg:"values"`
	// Custom map to store in the cookie.
	Custom map[string]interface{} `cfg:"custom"`
	// Roles to store in the cookie as []string.
	Roles bool `cfg:"roles"`
	// Scopes to store in the cookie as []string.
	Scopes bool `cfg:"scopes"`
}

type MetaData

type MetaData struct {
	Error string `json:"error"`
}

type Oauth2 added in v0.5.8

type Oauth2 struct {
	// ClientID is the application's ID.
	ClientID string `cfg:"client_id"`
	// ClientSecret is the application's secret.
	ClientSecret string `cfg:"client_secret" log:"false"`
	// Scope specifies optional requested permissions.
	Scopes []string `cfg:"scopes"`
	// CertURL is the resource server's public key URL.
	CertURL string `cfg:"cert_url"`
	// IntrospectURL is the check the active or not with request.
	IntrospectURL string `cfg:"introspect_url"`
	// AuthURL is the resource server's authorization endpoint
	// use for redirection to login page.
	AuthURL string `cfg:"auth_url"`
	// TokenURL is the resource server's token endpoint URL.
	TokenURL  string `cfg:"token_url"`
	LogoutURL string `cfg:"logout_url"`
	// AuthHeaderStyle is optional. If not set, AuthHeaderStyleBasic will be used.
	AuthHeaderStyle AuthHeaderStyle
}

type Options

type Options struct {
	Path     string `cfg:"path"`
	MaxAge   int    `cfg:"max_age"`
	Domain   string `cfg:"domain"`
	Secure   bool   `cfg:"secure"`
	HttpOnly bool   `cfg:"http_only"`
	// SameSite for Lax 2, Strict 3, None 4.
	SameSite http.SameSite `cfg:"same_site"`
}

type Provider added in v0.5.7

type Provider struct {
	Oauth2 *Oauth2 `cfg:"oauth2"`
	// PasswordFlow is use password flow to get token.
	PasswordFlow bool `cfg:"password_flow"`
	// Priority is use to sort provider.
	Priority int `cfg:"priority"`
}

type ProviderWrapper added in v0.5.7

type ProviderWrapper struct {
	Generic *providers.Generic
}

func (*ProviderWrapper) GetCertURL added in v0.5.7

func (p *ProviderWrapper) GetCertURL() string

func (*ProviderWrapper) IsNoop added in v0.5.7

func (p *ProviderWrapper) IsNoop() bool

type Registry

type Registry struct {
	Store map[string]*Session
	// contains filtered or unexported fields
}

func (*Registry) Get

func (r *Registry) Get(name string) *Session

func (*Registry) Set

func (r *Registry) Set(name string, store *Session)

type Session

type Session struct {
	SessionKey string  `cfg:"session_key"`
	Store      Store   `cfg:"store"`
	Options    Options `cfg:"options"`

	CookieName string `cfg:"cookie_name"`

	Action      Action              `cfg:"action"`
	Information Information         `cfg:"information"`
	Provider    map[string]Provider `cfg:"provider"`
	// contains filtered or unexported fields
}

func (*Session) DelToken added in v0.5.7

func (s *Session) DelToken(c echo.Context) error

func (*Session) Do

func (m *Session) Do(next echo.HandlerFunc, c echo.Context) error

func (*Session) GetStore

func (s *Session) GetStore() StoreInf

func (*Session) Info

func (m *Session) Info(c echo.Context) error

func (*Session) Init

func (m *Session) Init(ctx context.Context, name string) error

func (*Session) IsLogged

func (m *Session) IsLogged(c echo.Context) (bool, error)

IsLogged check token is exist and valid.

func (*Session) Middleware

func (m *Session) Middleware(ctx context.Context, name string) (echo.MiddlewareFunc, error)

func (*Session) RedirectToLogin

func (m *Session) RedirectToLogin(c echo.Context, store StoreInf, addRedirectPath bool, removeSession bool) error

func (*Session) RedirectToMain

func (m *Session) RedirectToMain(c echo.Context) error

func (*Session) SetAction

func (m *Session) SetAction() error

func (*Session) SetStore

func (s *Session) SetStore(ctx context.Context) error

func (*Session) SetToken added in v0.5.7

func (s *Session) SetToken(c echo.Context, token []byte, providerName string) error

type Store

type Store struct {
	Active string       `cfg:"active"`
	Redis  *store.Redis `cfg:"redis"`
	File   *store.File  `cfg:"file"`
}

type StoreInf

type StoreInf interface {
	Get(r *http.Request, name string) (*sessions.Session, error)
}

type Token

type Token struct {
	LoginPath          string `cfg:"login_path"`
	DisableRefresh     bool   `cfg:"disable_refresh"`
	InsecureSkipVerify bool   `cfg:"insecure_skip_verify"`
	// contains filtered or unexported fields
}

type TokenData added in v0.5.7

type TokenData struct {
	AccessToken      string `json:"access_token"`
	ExpiresIn        int    `json:"expires_in"`
	RefreshExpiresIn int    `json:"refresh_expires_in"`
	RefreshToken     string `json:"refresh_token"`
	TokenType        string `json:"token_type"`
	NotBeforePolicy  int    `json:"not-before-policy"`
	SessionState     string `json:"session_state"`
	Scope            string `json:"scope"`
	IDToken          string `json:"id_token"`
}

func ParseToken added in v0.5.7

func ParseToken(v []byte) (*TokenData, error)

func ParseToken64 added in v0.5.7

func ParseToken64(v string) (*TokenData, error)

Parse64 parse the cookie

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL