diff options
| author | Alexander Kavon <hawk@alexkavon.com> | 2023-11-30 01:43:08 -0500 |
|---|---|---|
| committer | Alexander Kavon <hawk@alexkavon.com> | 2023-11-30 01:43:08 -0500 |
| commit | 218cd643550ed00d26b6e9772d8a64875b5abf2e (patch) | |
| tree | 36b943ea5f73f290dcd0ed3aeacdb0b83852bc5c /src/sessions/sessions.go | |
| parent | 59bfd1219d36db6ae7b6833aef4f0c71b7b19b74 (diff) | |
initial sessions support via sessions pkg, includes session middleware for setting sessions, guest sessions, method to return array of middlewares
Diffstat (limited to 'src/sessions/sessions.go')
| -rw-r--r-- | src/sessions/sessions.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/sessions/sessions.go b/src/sessions/sessions.go new file mode 100644 index 0000000..d2acab6 --- /dev/null +++ b/src/sessions/sessions.go @@ -0,0 +1,35 @@ +package sessions + +import ( + "net/http" + + "github.com/google/uuid" +) + +type SessionMgr struct { + key string + Values map[string]string +} + +type session map[string]any + +type SessionCtxKey string + +var sessions map[string]session + +func (sm *SessionMgr) NewSession(w http.ResponseWriter, r http.Request) { + token := uuid.NewString() + + // set secure cookie in http.ResponseWriter + // TODO make secure + http.SetCookie(w, &http.Cookie{ + Name: "session_token", + Value: token, + }) + + sessions[token] = session{ + "username": username, + } + // set request context + +} |
