auth

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2021 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const StateTTL = 5 * time.Minute

Variables

This section is empty.

Functions

This section is empty.

Types

type AccessDenied

type AccessDenied struct {
	ProviderError
}

type Handler

type Handler struct {
	AuthService *Service
	// contains filtered or unexported fields
}

func (*Handler) ServeHTTP

func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request)

type Principal

type Principal string

func NewPrincipal

func NewPrincipal(providerName, userId string) Principal

type Provider

type Provider interface {
	Name() string
	VerifyCallback(r *http.Request) (principal Principal, userEmail string, err error)
	LoginRedirect(w http.ResponseWriter, r *http.Request, state string)
}

type ProviderError

type ProviderError struct {
	Reason string
}

func (ProviderError) Error

func (e ProviderError) Error() string

type Service

type Service struct {
	TokenProvider *TokenProvider
	UserProvider  *UserProvider

	Providers []Provider
	// contains filtered or unexported fields
}

func (*Service) Enabled

func (s *Service) Enabled() bool

func (*Service) Handler

func (s *Service) Handler(h http.Handler) http.Handler

func (*Service) RegisterRoutes

func (s *Service) RegisterRoutes(router *mux.Router)

func (*Service) Run

func (s *Service) Run(ctx context.Context)

func (*Service) VerifyRequest

func (s *Service) VerifyRequest(r *http.Request) (*Token, bool)

func (*Service) VerifyWebsocket

func (s *Service) VerifyWebsocket(r *http.Request) (*Token, bool)

type StateManager

type StateManager struct {
	// contains filtered or unexported fields
}

func (*StateManager) NewState

func (m *StateManager) NewState(provider Provider) string

type Token

type Token struct {
	Id        string    `json:"id,omitempty" hotcereal:"key"`
	CreatedAt time.Time `json:"created_at,omitempty"`
	Name      string    `json:"name"`

	Token     string    `json:"-" hotcereal:"lookup"`
	Type      TokenType `json:"-"`
	UserId    string    `json:"-"`
	ExpiresAt time.Time `json:"-"`
}

func NewToken

func NewToken() Token

func (*Token) DecodeMsgpack

func (s *Token) DecodeMsgpack(dec *msgpack.Decoder) error

func (*Token) EncodeMsgpack

func (s *Token) EncodeMsgpack(enc *msgpack.Encoder) error

type TokenProvider

type TokenProvider struct {
	Store store.Store
	// contains filtered or unexported fields
}

func (*TokenProvider) Delete

func (p *TokenProvider) Delete(objs ...*Token) error

func (*TokenProvider) FieldKey

func (p *TokenProvider) FieldKey(o *Token, fieldName string) store.FieldKey

func (*TokenProvider) FromRequest

func (p *TokenProvider) FromRequest(r *http.Request) *Token

func (*TokenProvider) Get

func (p *TokenProvider) Get(id string) *Token

func (*TokenProvider) GetByToken

func (p *TokenProvider) GetByToken(v string) *Token

func (*TokenProvider) Initialize

func (p *TokenProvider) Initialize() error

func (*TokenProvider) List

func (p *TokenProvider) List() []*Token

func (*TokenProvider) ObjectKey

func (p *TokenProvider) ObjectKey(o *Token) store.ObjectKey

func (*TokenProvider) Save

func (p *TokenProvider) Save(o *Token) error

func (*TokenProvider) Search

func (p *TokenProvider) Search(query string) []*Token

func (*TokenProvider) TypeKey

func (p *TokenProvider) TypeKey() store.TypeKey

type TokenType

type TokenType int
const (
	Invalid TokenType = iota
	Session
	Bearer
	Websocket
)

type User

type User struct {
	Id        string    `json:"id" hotcereal:"key"`
	CreatedAt time.Time `json:"created_at"`

	Email      string      `json:"-" hotcereal:"lookup"`
	Principals []Principal `json:"-" hotcereal:"lookup"`

	Preferences map[string]string `json:"preferences"`
}

func NewUser

func NewUser() User

func (*User) DecodeMsgpack

func (s *User) DecodeMsgpack(dec *msgpack.Decoder) error

func (*User) EncodeMsgpack

func (s *User) EncodeMsgpack(enc *msgpack.Encoder) error

type UserProvider

type UserProvider struct {
	Store store.Store
	// contains filtered or unexported fields
}

func (*UserProvider) Delete

func (p *UserProvider) Delete(objs ...*User) error

func (*UserProvider) FieldKey

func (p *UserProvider) FieldKey(o *User, fieldName string) store.FieldKey

func (*UserProvider) Get

func (p *UserProvider) Get(id string) *User

func (*UserProvider) GetByEmail

func (p *UserProvider) GetByEmail(v string) *User

func (*UserProvider) GetByPrincipals

func (p *UserProvider) GetByPrincipals(v Principal) *User

func (*UserProvider) Initialize

func (p *UserProvider) Initialize() error

func (*UserProvider) List

func (p *UserProvider) List() []*User

func (*UserProvider) ObjectKey

func (p *UserProvider) ObjectKey(o *User) store.ObjectKey

func (*UserProvider) Save

func (p *UserProvider) Save(o *User) error

func (*UserProvider) Search

func (p *UserProvider) Search(query string) []*User

func (*UserProvider) TypeKey

func (p *UserProvider) TypeKey() store.TypeKey

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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