aboutsummaryrefslogtreecommitdiff
path: root/controllers/logout.go
blob: 58ff545a2de8a0005ccfd67de076420a4b48ce3e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package controllers

import (
	"imageboard/config"
	"imageboard/session"

	"github.com/gofiber/fiber/v2"
)

func LogoutController(ctx *fiber.Ctx) error {
	sess, err := session.Store.Get(ctx)
	if err != nil {
		return ctx.Redirect(config.URL_HOME, fiber.StatusSeeOther)
	}

	if err := sess.Destroy(); err != nil {
		sess.Delete("user_id")
		sess.Delete("username")
		sess.Save()
	}

	next := ctx.Query("next")
	if next != "" {
		return ctx.Redirect(next, fiber.StatusSeeOther)
	}

	return ctx.Redirect(config.URL_HOME, fiber.StatusSeeOther)
}