gormstore

package module
v2.0.3 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2022 License: MIT Imports: 7 Imported by: 27

Documentation

Overview

Package gormstore is a GORM backend for gorilla sessions

Simplest form:

store := gormstore.New(gorm.Open(...), []byte("secret-hash-key"))

All options:

store := gormstore.NewOptions(
	gorm.Open(...), // *gorm.DB
	gormstore.Options{
		TableName: "sessions",  // "sessions" is default
		SkipCreateTable: false, // false is default
	},
	[]byte("secret-hash-key"),       // 32 or 64 bytes recommended, required
	[]byte("secret-encryption-key")) // nil, 16, 24 or 32 bytes, optional

	// some more settings, see sessions.Options
	store.SessionOpts.Secure = true
	store.SessionOpts.HttpOnly = true
	store.SessionOpts.MaxAge = 60 * 60 * 24 * 60

If you want periodic cleanup of expired sessions:

quit := make(chan struct{})
go store.PeriodicCleanup(1*time.Hour, quit)

For more information about the keys see https://github.com/gorilla/securecookie

For API to use in HTTP handlers see https://github.com/gorilla/sessions

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Options

type Options struct {
	TableName       string
	SkipCreateTable bool
}

Options for gormstore

type Store

type Store struct {
	Codecs      []securecookie.Codec
	SessionOpts *sessions.Options
	// contains filtered or unexported fields
}

Store represent a gormstore

func New

func New(db *gorm.DB, keyPairs ...[]byte) *Store

New creates a new gormstore session

func NewOptions

func NewOptions(db *gorm.DB, opts Options, keyPairs ...[]byte) *Store

NewOptions creates a new gormstore session with options

func (*Store) Cleanup

func (st *Store) Cleanup()

Cleanup deletes expired sessions

func (*Store) Get

func (st *Store) Get(r *http.Request, name string) (*sessions.Session, error)

Get returns a session for the given name after adding it to the registry.

func (*Store) MaxAge

func (st *Store) MaxAge(age int)

MaxAge sets the maximum age for the store and the underlying cookie implementation. Individual sessions can be deleted by setting Options.MaxAge = -1 for that session.

func (*Store) MaxLength

func (st *Store) MaxLength(l int)

MaxLength restricts the maximum length of new sessions to l. If l is 0 there is no limit to the size of a session, use with caution. The default is 4096 (default for securecookie)

func (*Store) New

func (st *Store) New(r *http.Request, name string) (*sessions.Session, error)

New creates a session with name without adding it to the registry.

func (*Store) PeriodicCleanup

func (st *Store) PeriodicCleanup(interval time.Duration, quit <-chan struct{})

PeriodicCleanup runs Cleanup every interval. Close quit channel to stop.

func (*Store) Save

func (st *Store) Save(r *http.Request, w http.ResponseWriter, session *sessions.Session) error

Save session and set cookie header

Jump to

Keyboard shortcuts

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