| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
- // SPDX-License-Identifier: Apache-2.0
- package cookie // import "miniflux.app/v2/internal/http/cookie"
- import (
- "net/http"
- "time"
- )
- // Cookie names.
- const (
- CookieAppSessionID = "MinifluxAppSessionID"
- CookieUserSessionID = "MinifluxUserSessionID"
- // Cookie duration in days.
- cookieDuration = 30
- )
- // New creates a new cookie.
- func New(name, value string, isHTTPS bool, path string) *http.Cookie {
- return &http.Cookie{
- Name: name,
- Value: value,
- Path: basePath(path),
- Secure: isHTTPS,
- HttpOnly: true,
- Expires: time.Now().Add(cookieDuration * 24 * time.Hour),
- SameSite: http.SameSiteLaxMode,
- }
- }
- // Expired returns an expired cookie.
- func Expired(name string, isHTTPS bool, path string) *http.Cookie {
- return &http.Cookie{
- Name: name,
- Value: "",
- Path: basePath(path),
- Secure: isHTTPS,
- HttpOnly: true,
- MaxAge: -1,
- Expires: time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC),
- SameSite: http.SameSiteLaxMode,
- }
- }
- func basePath(path string) string {
- if path == "" {
- return "/"
- }
- return path
- }
|