package app import ( "time" "code.crute.us/mcrute/golib/echo/middleware" "code.crute.us/mcrute/golib/echo/session" "github.com/go-webauthn/webauthn/webauthn" "github.com/labstack/echo/v4" ) type AppSession interface { session.Session middleware.CSRFAwareSession Self() *Session } type Session struct { Expiration time.Time CSRFToken string WebauthnSession *webauthn.SessionData } var _ AppSession = (*Session)(nil) func NewSession(c echo.Context) *Session { return &Session{ Expiration: time.Now().Add(365 * 24 * time.Hour), } } func (s *Session) Self() *Session { return s } func (s *Session) Expires() time.Time { return s.Expiration } func (s *Session) GetCSRFSecret() string { return s.CSRFToken } func (s *Session) SetCSRFSecret(secret string) { s.CSRFToken = secret }