20 lines
487 B
Go
Raw Normal View History

2025-09-08 00:48:47 -05:00
package internal
import (
"errors"
"net/http"
"github.com/golang-jwt/jwt/v5"
)
func CurrentUser(r *http.Request) (Claims, error) {
c, err := r.Cookie(CookieName)
if err != nil { return Claims{}, err }
tok, err := jwt.ParseWithClaims(c.Value, &Claims{}, func(_ *jwt.Token) (any, error) { return sessionKey, nil })
if err != nil { return Claims{}, err }
if cl, ok := tok.Claims.(*Claims); ok && tok.Valid {
return *cl, nil
}
return Claims{}, errors.New("invalid session")
}