go-dev-zprox-0.01/internal/session/session.go
2025-03-22 08:57:23 +00:00

41 lines
951 B
Go

package session
import (
"crypto/rsa"
"encoding/gob"
"time"
"github.com/alexedwards/scs/v2"
"golang.org/x/oauth2"
)
// type SCS struct {
// *scs.SessionManager
// }
// type Data struct {
// Ctx context.Context
// Token string
// Req *http.Request
// }
var Manager *scs.SessionManager
func init() {
gob.RegisterName("oauth2_token_pointer", &oauth2.Token{})
gob.RegisterName("rsa_public_key_pointer", &rsa.PublicKey{})
Manager = scs.New()
Manager.Lifetime = 24 * time.Hour
Manager.Cookie.Name = "session_cookie"
// Manager.Cookie.Secure = true // Set to true in production
// Manager.Store = memstore.New() // Or use another store (e.g., Redis, database)
}
// func (s *SCS) UpdateHttpRequest(r *http.Request) context.Context {
// sessToken := Manager.Token(r.Context())
// sess, err := Manager.Load(r.Context(), sessToken)
// if err != nil {
// log.Println(err.Error())
// }
// s.SessionManager = sess
// return
// }