Client-side session lib.
Allows to encrypt session data in plain token
5tMF4QqEUiWRsIIjrlDmefSa+Nis58xfbsWwveNHSpba+h8SzZpC/qBa9Em8S7LKlQee316eGwyEMTzngFBtb99X7ikiRS+wiPa5DzxpOEZK
You can set it as cookie, or send to client side in other way.
Expiration time is 30 seconds by default.
If you don't call session.Token()
and don't renew it on client side, session will expire.
$> go get gihub.com/freundallein/token-session
package main
import (
"fmt"
"time"
"github.com/freundallein/token-session/sessions"
)
func main() {
opts := &sessions.Options{
Secret:"my-secret-key",
Expiration: 60 * time.Second,
}
sessions.Init(opts)
data := map[string]string{
"username": "Test",
"role": "user",
}
session := sessions.Create(data)
fmt.Println(session)
fmt.Println(session.Data())
token, err := session.Token()
if err != nil {
fmt.Println(err.Error())
}
fmt.Println(token)
session, err = sessions.Get(token)
if err != nil {
fmt.Println(err.Error())
}
fmt.Println(session)
}