fix: resolve folder drag-and-drop, add remember me, fix pinned folder navigation
All checks were successful
Automated Container Build / build-and-push (push) Successful in 1m18s

This commit is contained in:
Elijah 2026-05-23 13:08:13 -07:00
parent 7278008d7e
commit b668418951
5 changed files with 89 additions and 14 deletions

View file

@ -40,9 +40,10 @@ type SetupRequest struct {
}
type LoginRequest struct {
Username string `json:"username"`
Password string `json:"password"`
TOTPCode string `json:"totp_code,omitempty"`
Username string `json:"username"`
Password string `json:"password"`
TOTPCode string `json:"totp_code,omitempty"`
RememberMe bool `json:"remember_me"`
}
// Setup handles the first-run account creation wizard.
@ -150,7 +151,7 @@ func (h *AuthHandler) Login(c *fiber.Ctx) error {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "failed to generate token"})
}
refreshToken, err := middleware.GenerateRefreshToken(id, req.Username, h.Config.JWTSecret)
refreshToken, err := middleware.GenerateRefreshToken(id, req.Username, h.Config.JWTSecret, req.RememberMe)
if err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "failed to generate refresh token"})
}

View file

@ -86,11 +86,16 @@ func GenerateAccessToken(userID int, username, secret string, expirySecs int) (s
}
// GenerateRefreshToken creates a longer-lived refresh token.
func GenerateRefreshToken(userID int, username, secret string) (string, error) {
func GenerateRefreshToken(userID int, username, secret string, rememberMe bool) (string, error) {
exp := time.Now().Add(7 * 24 * time.Hour).Unix() // 7 days
if rememberMe {
exp = time.Now().Add(21 * 24 * time.Hour).Unix() // 21 days (3 weeks)
}
claims := jwt.MapClaims{
"sub": userID,
"username": username,
"exp": time.Now().Add(7 * 24 * time.Hour).Unix(), // 7 days
"exp": exp,
"iat": time.Now().Unix(),
"type": "refresh",
}