session

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 23, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

README

session

xinghanking/session包是一个实现与PHP程序共用redis存储session数据的包。 php的session除了文件存储这种方式,还可以使用redis存储。 对于php如何通过在php.ini中设置使用redis做session存储,在此略过。 本包暂时只支持php.ini的serialize_handler设置为php_serialize的情况。 配合gin的中间件使用,可实现与php程序共同session的功能

安装

go get github.com/xinghanking/session

前置

go get github.com/gin-gonic/gin
go get github.com/go-redis/redis

使用

router := gin.Default()
Client = redis.NewClient(&redis.Options{
	Addr:     127.0.0.1:6379, //redis服务器地址
	Password: "", //redis密码
	DB:       0,
	//…………
})
router.Use(redis_session.Init(redis_session.Options{
    RedisStore:      Client,              //必传
    SessionName:    "PHPSESSID",         //存储session_id的cookie名,默认值:"PHPSESSID"
    RedisKeyPrefix: "PHPREDIS_SESSION:", //session数据存储在redis中的KEY前缀名,默认值:" PHPREDIS_SESSION:"
    MaxAge:         86400,               //保存session_id值的cookie最大生存时间,单位:秒,默认值:86400
    Secure:         false,               
    HttpOnly:       false,
    Expiration:     0,                   //redis中保存session数据的时长,默认值:0
}))
router.GET("/", func(context *gin.Context){
    userName := redis_session.Get("USER_NAME")  //获取seession值
    redis_session.Set("IS_LOGIN", true)         //设置session
    redis_session.Del("PWD")                    //删除session
    redis_session.Destroy()                     //销毁当前session
})

Documentation

Index

Constants

This section is empty.

Variables

View Source
var SessionID string
View Source
var SessionName string
View Source
var StoreKey string
View Source
var Values map[string]any

Functions

func ConvertMap

func ConvertMap(input any) any

func Del

func Del(key string)

func Destroy

func Destroy()

func Exist

func Exist(key string) bool

func Get

func Get(key string) any

func Init

func Init(options Options) gin.HandlerFunc

func Save

func Save()

func Set

func Set(key string, value any)

func Start

func Start()

Types

type Options

type Options struct {
	RedisStore     *redis.Client
	RedisKeyPrefix string
	SessionName    string
	MaxAge         int
	Secure         bool
	HttpOnly       bool
	Expiration     time.Duration
}
var Session Options

func (*Options) Serialize

func (s *Options) Serialize(data map[string]any) (string, error)

func (*Options) UnSerialize

func (s *Options) UnSerialize(value []byte) (map[string]any, error)

Jump to

Keyboard shortcuts

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