Skip to content

freundallein/token-session

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

token-session

Build Status Coverage Status Go Report Card

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.

Installation

$> go get gihub.com/freundallein/token-session

Usage

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)
}

About

Encrypted client-side session lib

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published