diff --git a/backend/api/handlers.go b/backend/api/handlers.go index ae4eb69..bba8e8a 100644 --- a/backend/api/handlers.go +++ b/backend/api/handlers.go @@ -112,6 +112,19 @@ func userUpdate(c *gin.Context) { c.JSON(http.StatusOK, user) } +func userLogout(c *gin.Context) { + session := sessions.Default(c) + _, ok := session.Get("user_id").(string) + if !ok { + c.JSON(http.StatusUnauthorized, gin.H{"error": "Ну и как я тебя разлогиню, если ты даже не залогинился?"}) + return + } + session.Clear() + session.Options(sessions.Options{MaxAge: -1}) + session.Save() + c.Status(http.StatusNoContent) +} + //#endregion User //#region Quotes diff --git a/backend/api/routes.go b/backend/api/routes.go index b81417b..48fa817 100644 --- a/backend/api/routes.go +++ b/backend/api/routes.go @@ -23,6 +23,7 @@ func RegisterRoutes(r *gin.Engine) { api.POST("/auth", userAuth) api.GET("/auth", userGet) api.PATCH("/auth", userUpdate) + api.DELETE("/auth", userLogout) api.GET("/quotes", quotesGet) api.POST("/quotes", quoteAdd)