Implement saved sessions

This commit is contained in:
William Bouzourène 2025-01-08 15:21:47 +01:00
parent 9bec3a591e
commit 71e39dcf62
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 := "/"