https://github.com/no-src/nssession
A Go session framework that supports multiple data source drivers
https://github.com/no-src/nssession
golang session
Last synced: 3 months ago
JSON representation
A Go session framework that supports multiple data source drivers
- Host: GitHub
- URL: https://github.com/no-src/nssession
- Owner: no-src
- License: apache-2.0
- Created: 2022-06-01T16:53:27.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-12-04T01:13:03.000Z (7 months ago)
- Last Synced: 2025-12-07T07:19:02.676Z (7 months ago)
- Topics: golang, session
- Language: Go
- Homepage:
- Size: 90.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# nssession
[](https://github.com/no-src/nssession/actions)
[](https://github.com/no-src/nssession/blob/main/LICENSE)
[](https://pkg.go.dev/github.com/no-src/nssession)
[](https://goreportcard.com/report/github.com/no-src/nssession)
[](https://codecov.io/gh/no-src/nssession)
[](https://github.com/no-src/nssession/releases)
## Installation
```bash
go get -u github.com/no-src/nssession
```
## Quick Start
```go
package main
import (
"net/http"
"time"
"github.com/no-src/log"
"github.com/no-src/nssession"
"github.com/no-src/nssession/store"
"github.com/no-src/nssession/store/memory"
)
func main() {
// initial default session config
c := &nssession.Config{
Connection: "memory:",
Expiration: time.Hour,
Store: store.NewStore(memory.Driver),
}
err := nssession.InitDefaultConfig(c)
if err != nil {
log.Error(err, "init the default config error")
return
}
http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
// get session component
session, err := nssession.Default(request, writer)
if err != nil {
log.Error(err, "get session component error")
return
}
// set session data
k := "hello"
var v string
err = session.Set(k, "world")
if err != nil {
log.Error(err, "set session data error")
return
}
// get session data
err = session.Get(k, &v)
if err != nil {
log.Error(err, "get session data error")
return
}
log.Info("get the session data success, k=%s v=%s", k, v)
// remove session data
err = session.Remove(k)
if err != nil {
log.Error(err, "remove session data error")
return
}
// clear all session data for the current session
err = session.Clear()
if err != nil {
log.Error(err, "clear session data error")
return
}
})
http.ListenAndServe(":8080", nil)
}
```