From 2ae92f819167267bc6bbf98052c14acb7dcb3e88 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Mon, 21 Sep 2026 16:15:40 +0200 Subject: [PATCH] feat: logout endpoint --- handlers.go | 8 ++++++++ main.go | 1 + stubs.go | 1 + 3 files changed, 10 insertions(+) diff --git a/handlers.go b/handlers.go index ba5b269..37057c1 100644 --- a/handlers.go +++ b/handlers.go @@ -122,6 +122,14 @@ func callbackHandler(c *gin.Context) { } } +func logoutHandler(c *gin.Context) { + session := sessions.Default(c) + session.Clear() + session.Save() +} + +// Ensure that a user is currently logged in. +// If redirectFail is set, then if not, the user is redirected. func EnsureLogin(redirectFail bool) func(c *gin.Context) { return (func(c *gin.Context) { session := sessions.Default(c) diff --git a/main.go b/main.go index 4876d1e..8c7b7e1 100644 --- a/main.go +++ b/main.go @@ -62,6 +62,7 @@ func Configure(r *gin.Engine, app_url string, default_redirect string, stubs_on_ r.GET("/auth/v2/login", loginHandler) r.GET("/auth/v2/verify", callbackHandler) r.GET("/auth/v2/check", EnsureLogin(false), func(ctx *gin.Context) { ctx.JSON(200, gin.H{"success": "true"}) }) + r.GET("/auth/v2/logout", logoutHandler) log.Println("[JHID] Configured successfully") } diff --git a/stubs.go b/stubs.go index e38ffdf..675ab3d 100644 --- a/stubs.go +++ b/stubs.go @@ -9,6 +9,7 @@ func startStubs(r *gin.Engine) { r.GET("/auth/v2/login", stubsHandler) r.GET("/auth/v2/verify", stubsHandler) r.GET("/auth/v2/check", EnsureLogin(false), func(ctx *gin.Context) { ctx.JSON(200, gin.H{"success": "true"}) }) + r.GET("/auth/v2/logout", logoutHandler) } func stubsHandler(c *gin.Context) {