diff --git a/app/http/controllers/user_controller.go b/app/http/controllers/user_controller.go index 881583a9..6e386547 100644 --- a/app/http/controllers/user_controller.go +++ b/app/http/controllers/user_controller.go @@ -73,10 +73,28 @@ func (r *UserController) Login(ctx http.Context) http.Response { // @Success 200 {object} SuccessResponse // @Router /panel/user/logout [post] func (r *UserController) Logout(ctx http.Context) http.Response { - ctx.Request().Session().Forget("user_id") + if ctx.Request().HasSession() { + ctx.Request().Session().Forget("user_id") + } + return Success(ctx, nil) } +// IsLogin +// +// @Summary 是否登录 +// @Tags 用户鉴权 +// @Produce json +// @Success 200 {object} SuccessResponse +// @Router /panel/user/isLogin [get] +func (r *UserController) IsLogin(ctx http.Context) http.Response { + if !ctx.Request().HasSession() { + return Success(ctx, false) + } + + return Success(ctx, ctx.Request().Session().Has("user_id")) +} + // Info // // @Summary 用户信息 diff --git a/config/panel.go b/config/panel.go index 4e703002..582ce526 100644 --- a/config/panel.go +++ b/config/panel.go @@ -8,7 +8,7 @@ func init() { config := facades.Config() config.Add("panel", map[string]any{ "name": "耗子面板", - "version": "v2.2.24", + "version": "v2.2.25", "ssl": config.Env("APP_SSL", false), // 安全入口 "entrance": config.Env("APP_ENTRANCE", "/"), diff --git a/routes/api.go b/routes/api.go index ca77ebc0..88722b8d 100644 --- a/routes/api.go +++ b/routes/api.go @@ -32,6 +32,7 @@ func Api() { userController := controllers.NewUserController() r.Middleware(frameworkmiddleware.Throttle("login")).Post("login", userController.Login) r.Post("logout", userController.Logout) + r.Get("isLogin", userController.IsLogin) r.Middleware(middleware.Session()).Get("info", userController.Info) }) r.Prefix("task").Middleware(middleware.Session()).Group(func(r route.Router) {