README ¶
Session
Middleware support for echo, utilizing by admpub/sessions.
Installation
go get github.com/webx-top/echo
Usage
package main
import (
"github.com/webx-top/echo"
"github.com/webx-top/echo/engine/standard"
"github.com/webx-top/echo/middleware/session"
cookieStore "github.com/webx-top/echo/middleware/session/engine/cookie"
)
func index(c echo.Context) error {
session := c.Session()
var count int
v := session.Get("count")
if v == nil {
count = 0
} else {
count = v.(int)
count += 1
}
session.Set("count", count)
data := struct {
Visit int
}{
Visit: count,
}
return c.JSON(http.StatusOK, data)
}
func main() {
sessionOptions:=&echo.SessionOptions{
Name: `GOSESSIONID`,
Engine: `cookie`,
CookieOptions: &echo.CookieOptions{
Path: `/`,
HttpOnly: true,
},
}
cookieStore.RegWithOptions(&cookieStore.CookieOptions{
KeyPairs: [][]byte{
[]byte("secret-key"),
},
SessionOptions: sessionOptions,
})
e := echo.New()
// Attach middleware
e.Use(session.Middleware(sessionOptions))
// Routes
e.Get("/", index)
e.Run(standard.New(":8080"))
}
Documentation ¶
Index ¶
- Constants
- Variables
- func Del(name string)
- func GenerateSessionID(prefix ...string) string
- func Get(name string) sessions.Store
- func NewMySession(store sessions.Store, name string, ctx echo.Context) echo.Sessioner
- func NewSession(ctx echo.Context) echo.Sessioner
- func Reg(name string, store sessions.Store)
- func StoreEngine(options *echo.SessionOptions) (store sessions.Store)
- type Closer
- type Session
- func (s *Session) AddFlash(value interface{}, vars ...string) echo.Sessioner
- func (s *Session) AddPreSaveHook(hook func(echo.Context) error)
- func (s *Session) Clear() echo.Sessioner
- func (s *Session) Delete(key string) echo.Sessioner
- func (s *Session) Flashes(vars ...string) []interface{}
- func (s *Session) Get(key string) interface{}
- func (s *Session) ID() string
- func (s *Session) MustID() string
- func (s *Session) RemoveID(sessionID string) error
- func (s *Session) Save() error
- func (s *Session) Session() *sessions.Session
- func (s *Session) Set(key string, val interface{}) echo.Sessioner
- func (s *Session) SetID(id string, notReload ...bool) error
- func (s *Session) SetPreSaveHook(hooks ...func(echo.Context) error)
- func (s *Session) Written() bool
Constants ¶
View Source
const (
DefaultMaxAge = 86400 * 30 // 30days
)
Defaults for sessions.Options
Variables ¶
View Source
var ErrInvalidSessionID = errors.New("invalid session ID")
Functions ¶
func GenerateSessionID ¶ added in v1.6.0
func NewMySession ¶
func StoreEngine ¶
func StoreEngine(options *echo.SessionOptions) (store sessions.Store)
Types ¶
type Session ¶
type Session struct {
// contains filtered or unexported fields
}
func (*Session) AddPreSaveHook ¶ added in v1.6.0
func (*Session) SetPreSaveHook ¶ added in v1.6.0
Click to show internal directories.
Click to hide internal directories.