Implement saved sessions

This commit is contained in:
William Bouzourène 2025-01-08 15:21:47 +01:00
parent 025b984314
commit fa0e917d34
Signed by: bouzoure
SSH key fingerprint: SHA256:19MbXpLua4rUtk8tunMesD8KUKb91LXLHg8E/qTooww
9 changed files with 187 additions and 0 deletions

View file

@ -91,6 +91,26 @@ func TotpEnrollPage(c *fiber.Ctx) error {
sess.Set("totp-verified", "yes")
if sess.Get("create-saved-session") == "yes" {
savedSession, secret, err := helpers.CreateSavedSession(user.ID)
if err == nil {
cookieUUID := fiber.Cookie{
Name: "saved-session-uuid",
Value: savedSession.UUID,
Expires: savedSession.Expiration,
}
cookieSecret := fiber.Cookie{
Name: "saved-session-secret",
Value: secret,
Expires: savedSession.Expiration,
}
c.Cookie(&cookieUUID)
c.Cookie(&cookieSecret)
}
}
redirectId := c.Query("redirect")
redirectUrl := "/"
@ -164,6 +184,26 @@ func TotpVerifyPage(c *fiber.Ctx) error {
if c.Method() == "POST" {
otp := c.FormValue("otp")
if totp.Validate(otp, user.TotpSecret.String) {
if sess.Get("create-saved-session") == "yes" {
savedSession, secret, err := helpers.CreateSavedSession(user.ID)
if err == nil {
cookieUUID := fiber.Cookie{
Name: "saved-session-uuid",
Value: savedSession.UUID,
Expires: savedSession.Expiration,
}
cookieSecret := fiber.Cookie{
Name: "saved-session-secret",
Value: secret,
Expires: savedSession.Expiration,
}
c.Cookie(&cookieUUID)
c.Cookie(&cookieSecret)
}
}
redirectId := c.Query("redirect")
redirectUrl := "/"