sessions

package
v1.0.0-rc.2 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2019 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// CookieName セッションクッキー名
	CookieName = "r_session"
)

Variables

This section is empty.

Functions

func DestroyByReferenceID

func DestroyByReferenceID(userID, referenceID uuid.UUID) error

DestroyByReferenceID 指定したユーザーのreferenceIDのセッションを破棄します

func DestroyByToken

func DestroyByToken(token string) error

DestroyByToken 指定したtokenのセッションを破棄します

func DestroyByUserID

func DestroyByUserID(id uuid.UUID) error

DestroyByUserID 指定したユーザーのセッションを全て破棄します

func PurgeCache

func PurgeCache()

PurgeCache キャッシュを全て解放し、その内容を永続化します

func SetStore

func SetStore(s Store)

SetStore ストアをセットします

Types

type CacheableStore

type CacheableStore interface {
	Store
	PurgeCache()
}

CacheableStore キャッシュ可能なセッションストア

type GORMStore

type GORMStore struct {
	sync.Mutex
	// contains filtered or unexported fields
}

GORMStore GORMストア

func (*GORMStore) DestroyByToken

func (s *GORMStore) DestroyByToken(token string) error

DestroyByToken deletes token's session

func (*GORMStore) GetByReferenceID

func (s *GORMStore) GetByReferenceID(id uuid.UUID) (*Session, error)

GetByReferenceID gets id's session

func (*GORMStore) GetByToken

func (s *GORMStore) GetByToken(token string) (*Session, error)

GetByToken gets token's session

func (*GORMStore) GetByUserID

func (s *GORMStore) GetByUserID(id uuid.UUID) ([]*Session, error)

GetByUserID gets the user's sessions

func (*GORMStore) PurgeCache

func (s *GORMStore) PurgeCache()

PurgeCache キャッシュを全て永続化してから解放します

func (*GORMStore) Save

func (s *GORMStore) Save(token string, session *Session) error

Save saves token's session

type InMemoryStore

type InMemoryStore struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

InMemoryStore for test use

func (*InMemoryStore) DestroyByToken

func (s *InMemoryStore) DestroyByToken(token string) error

DestroyByToken deletes token's session

func (*InMemoryStore) GetByReferenceID

func (s *InMemoryStore) GetByReferenceID(id uuid.UUID) (*Session, error)

GetByReferenceID gets id's session

func (*InMemoryStore) GetByToken

func (s *InMemoryStore) GetByToken(token string) (*Session, error)

GetByToken gets token's session

func (*InMemoryStore) GetByUserID

func (s *InMemoryStore) GetByUserID(id uuid.UUID) (result []*Session, err error)

GetByUserID gets the user's sessions

func (*InMemoryStore) Save

func (s *InMemoryStore) Save(token string, session *Session) error

Save saves token's session

type Session

type Session struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

Session セッション構造体

func Get

func Get(rw http.ResponseWriter, req *http.Request, createIfNotExists bool) (*Session, error)

Get セッションを取得します

func GetByToken

func GetByToken(token string) (s *Session, err error)

GetByToken 指定したtokenのセッションを取得します

func GetByUserID

func GetByUserID(id uuid.UUID) ([]*Session, error)

GetByUserID 指定したユーザーのセッションを全て取得します

func (*Session) Delete

func (s *Session) Delete(key string) error

Delete セッションから値を削除します

func (*Session) Destroy

func (s *Session) Destroy(rw http.ResponseWriter, req *http.Request) error

Destroy セッションを破棄します

func (*Session) Expired

func (s *Session) Expired() bool

Expired セッションの有効期限が切れているかどうか

func (*Session) Get

func (s *Session) Get(key string) interface{}

Get セッションから値を取り出します

func (*Session) GetSessionInfo

func (s *Session) GetSessionInfo() (referenceID uuid.UUID, created, lastAccess time.Time, lastIP, lastUserAgent string)

GetSessionInfo セッションの情報を返します

func (*Session) GetUserID

func (s *Session) GetUserID() uuid.UUID

GetUserID セッションに紐づけられているユーザーのIDを返します

func (*Session) Set

func (s *Session) Set(key string, value interface{}) error

Set セッションに値をセットします

func (*Session) SetUser

func (s *Session) SetUser(userID uuid.UUID) error

SetUser セッションにユーザーを紐づけます

type SessionRecord

type SessionRecord struct {
	Token         string    `gorm:"type:varchar(50);primary_key"`
	ReferenceID   string    `gorm:"type:char(36);unique"`
	UserID        string    `gorm:"type:varchar(36);index"`
	LastAccess    time.Time `gorm:"precision:6"`
	LastIP        string    `gorm:"type:text"`
	LastUserAgent string    `gorm:"type:text"`
	Data          []byte    `gorm:"type:longblob"`
	Created       time.Time `gorm:"precision:6"`
}

SessionRecord GORM用Session構造体

func (*SessionRecord) TableName

func (*SessionRecord) TableName() string

TableName SessionRecordのテーブル名

type Store

type Store interface {
	GetByToken(token string) (*Session, error)
	GetByUserID(id uuid.UUID) ([]*Session, error)
	GetByReferenceID(id uuid.UUID) (*Session, error)
	DestroyByToken(token string) error
	Save(token string, session *Session) error
}

Store セッションストア

func NewGORMStore

func NewGORMStore(db *gorm.DB) (Store, error)

NewGORMStore GORMストアを作成します

func NewInMemoryStore

func NewInMemoryStore() Store

NewInMemoryStore インメモリストアを作成します

Jump to

Keyboard shortcuts

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