Documentation
¶
Overview ¶
Package session gère les sessions admin de JellyGate.
Ce package est isolé pour éviter les cycles d'import entre handlers et middleware. Il contient :
- SessionPayload : données stockées dans le cookie
- signSession / VerifySession : signature HMAC-SHA256
- SessionFromContext : récupération depuis le contexte de requête
- Constantes de session (nom du cookie, durée)
Index ¶
Constants ¶
View Source
const ( // CookieName est le nom du cookie de session admin. CookieName = "jellygate_session" // Duration est la durée de validité d'une session (24 heures). Duration = 24 * time.Hour // RememberDuration est la duree de validite quand l'utilisateur choisit // de rester connecte sur ce navigateur. RememberDuration = 30 * 24 * time.Hour // IndefiniteDuration garde une session persistante tres longtemps. // Les navigateurs peuvent appliquer leur propre limite, mais le serveur ne // l'expire pas avant cette duree sauf deconnexion ou revocation globale. IndefiniteDuration = 10 * 365 * 24 * time.Hour )
Variables ¶
This section is empty.
Functions ¶
func NewContext ¶
NewContext injecte une session dans un contexte.
Types ¶
type Payload ¶
type Payload struct {
UserID string `json:"uid"` // ID Jellyfin de l'utilisateur
Username string `json:"usr"` // Nom d'utilisateur
IsAdmin bool `json:"adm"` // Est administrateur Jellyfin
Exp int64 `json:"exp"` // Timestamp d'expiration (Unix)
Iat int64 `json:"iat"` // Timestamp de creation (Unix)
}
Payload contient les données stockées dans le cookie de session. Le cookie est signé (HMAC-SHA256) mais pas chiffré — ne jamais y mettre de données sensibles (mots de passe, tokens Jellyfin).
func FromContext ¶
FromContext récupère la session admin depuis le contexte de la requête. Retourne nil si aucune session n'est présente.
Click to show internal directories.
Click to hide internal directories.