wrappedgorillasession

package
v0.0.0-...-ba0f816 Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2022 License: MIT, MIT Imports: 5 Imported by: 0

README

Wrapped Gorilla Session

将 gorilla session https://github.com/gorilla/sessions 转化为 externalauth库可以使用的Session 对象

范例代码

与External auth 一起使用
gstore := sessions.NewCookieStore([]byte("something-very-secret"))
Session := New(gstore, "test")
mux := http.NewServeMux()
mux.Handle(Auth.Path+"/", http.StripPrefix(Auth.Path, WrapRecover(
	Session.Wrap(
		http.HandlerFunc(
			Auth.Serve(ActionSuccess),
		),
	),
)),
)
作为session正常使用
gstore := sessions.NewCookieStore([]byte("something-very-secret"))
session := New(gstore, "test")

value := &data{}
err := session.Set(r, "test", value)

Value2:=&data{}

err := session.Get(r, "test", value)

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ContextField = SessionRequestContextType("Session")

ContextField session request context type

View Source
var ErrNotFound = errors.New("not found")

ErrNotFound error raised when session data not found

Functions

This section is empty.

Types

type CookieWriter

type CookieWriter struct {
	Writer

	Store *Store
	// contains filtered or unexported fields
}

CookieWriter writer for cookie

func (*CookieWriter) Write

func (w *CookieWriter) Write(data []byte) (int, error)

Write write http response body

func (*CookieWriter) WriteHeader

func (w *CookieWriter) WriteHeader(status int)

WriteHeader write http response header

type SessionRequestContextType

type SessionRequestContextType string

SessionRequestContextType content type which store session in request

type Store

type Store struct {
	Store sessions.Store
	Name  string
}

Store session store

func New

func New(store sessions.Store, name string) *Store

New create new store with given gorilla session and session context name

func (*Store) Del

func (s *Store) Del(r *http.Request, fieldname string) error

Del delete data from request with given field name

func (*Store) Get

func (s *Store) Get(r *http.Request, fieldname string, v interface{}) error

Get data from request with given field name. Param v must be pointer

func (*Store) IsNotFoundError

func (s *Store) IsNotFoundError(err error) bool

IsNotFoundError check if give error is not found error

func (*Store) MustLoad

func (s *Store) MustLoad(w http.ResponseWriter, r *http.Request)

MustLoad load session from request. Panic if any error raised.

func (*Store) SessionData

func (s *Store) SessionData(r *http.Request) *sessions.Session

SessionData get session data from request

func (*Store) Set

func (s *Store) Set(r *http.Request, fieldname string, v interface{}) error

Set set data to request with given field name

func (*Store) SetSessionData

func (s *Store) SetSessionData(r *http.Request, data *sessions.Session)

SetSessionData set session data to request.

func (*Store) Wrap

func (s *Store) Wrap(h http.Handler) http.Handler

Wrap wraper http handler with session

type Writer

type Writer interface {
	http.ResponseWriter
	http.Hijacker
}

Writer http response writer interface

Jump to

Keyboard shortcuts

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