Implement saved sessions
This commit is contained in:
parent
025b984314
commit
fa0e917d34
9 changed files with 187 additions and 0 deletions
|
|
@ -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 := "/"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue