in src/frontend/middleware.go [85:111]
func ensureSessionID(next http.Handler) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var sessionID string
c, err := r.Cookie(cookieSessionID)
if err == http.ErrNoCookie {
if os.Getenv("ENABLE_SINGLE_SHARED_SESSION") == "true" {
// Hard coded user id, shared across sessions
sessionID = "12345678-1234-1234-1234-123456789123"
} else {
u, _ := uuid.NewRandom()
sessionID = u.String()
}
http.SetCookie(w, &http.Cookie{
Name: cookieSessionID,
Value: sessionID,
MaxAge: cookieMaxAge,
})
} else if err != nil {
return
} else {
sessionID = c.Value
}
ctx := context.WithValue(r.Context(), ctxKeySessionID{}, sessionID)
r = r.WithContext(ctx)
next.ServeHTTP(w, r)
}
}