From 550d33415c0d6a3a78d6c23937dd06f312ba953a Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期二, 02 七月 2019 18:29:24 +0800 Subject: [PATCH] implement me and current by token --- controllers/user.go | 33 +++++++++++++++- extend/code/code.go | 2 + controllers/sysMenu.go | 34 +++++++++++++++++ router/router.go | 14 ++++++- 4 files changed, 79 insertions(+), 4 deletions(-) diff --git a/controllers/sysMenu.go b/controllers/sysMenu.go index 2d32936..e707c42 100644 --- a/controllers/sysMenu.go +++ b/controllers/sysMenu.go @@ -1 +1,35 @@ package controllers + +import ( + "fmt" + "github.com/gin-gonic/gin" + "webserver/extend/code" + "webserver/extend/util" + "webserver/middlewares/auth" +) + +type SysMenuController struct { + +} + +// @Summary 褰撳墠鐢ㄦ埛鐨勭郴缁熻彍鍗� +// @Description 褰撳墠鐢ㄦ埛鐨勭郴缁熻彍鍗� +// @Accept json +// @Produce json +// @Tags 绯荤粺鑿滃崟 +// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" +// @Failure 500 {string} json "{"code":500, success:false, msg:"", data:""}" +// @Router /data/api-v/sysmenus/me [get] +func (controller SysMenuController) Me(c *gin.Context) { + module := c.Param("module") + fmt.Println("me.module:",module) + authDriver := auth.GenerateAuthDriver() + user := (*authDriver).User(c) + fmt.Println("current:",user) + if user !=nil { + menus := user.(map[string]interface{})["sysMenus"] + util.ResponseFormat(c,code.Success,menus) + } else { + util.ResponseFormat(c,code.NotLogin,"") + } +} \ No newline at end of file diff --git a/controllers/user.go b/controllers/user.go index a406775..5cff7b9 100644 --- a/controllers/user.go +++ b/controllers/user.go @@ -2,7 +2,9 @@ import ( "basic.com/dbapi.git" + "fmt" "github.com/gin-gonic/gin" + "time" "webserver/extend/code" "webserver/extend/util" "webserver/middlewares/auth" @@ -25,7 +27,7 @@ // @Param user body UserVo true "鐢ㄦ埛淇℃伅" // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" // @Failure 500 {string} json "{"code":500, success:false, msg:"", data:""}" -// @Router /data/api-v/user/login [post] +// @Router /data/api-v/sys/login [post] func (controller UserController) Login(c *gin.Context) { var userVo UserVo if err := c.BindJSON(&userVo);err !=nil { @@ -39,9 +41,36 @@ tokenStr := (*authDriver).Login(c.Request, c.Writer, util.Struct2Map(userInfo)) util.ResponseFormat(c,code.Success,map[string]interface{}{ "userInfo":userInfo, - "token":tokenStr, + "access_token":tokenStr, + "refresh_token":tokenStr, + "scope":"app", + "token_type":"Bearer", + "expires_in":time.Now().Add(time.Hour * 8).Unix(), }) } else { util.ResponseFormat(c,code.SigninInfoError,"鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒") } +} + +// @Summary 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅 +// @Description 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅 +// @Accept json +// @Produce json +// @Tags 鐢ㄦ埛 +// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" +// @Failure 500 {string} json "{"code":500, success:false, msg:"", data:""}" +// @Router /data/api-v/users/current [get] +func (controller UserController) Current(c *gin.Context) { + authDriver := auth.GenerateAuthDriver() + user := (*authDriver).User(c) + fmt.Println("current:",user) + if user !=nil { + util.ResponseFormat(c,code.Success,user) + } else { + util.ResponseFormat(c,code.NotLogin,"") + } +} + +func (controller UserController) Logout(c *gin.Context){ + } \ No newline at end of file diff --git a/extend/code/code.go b/extend/code/code.go index ea4a43e..4eca900 100644 --- a/extend/code/code.go +++ b/extend/code/code.go @@ -43,5 +43,7 @@ //鍒犻櫎鑺傜偣澶辫触 HasChildNodeError = &Code{http.StatusInternalServerError, false, "鏁版嵁鑺傜偣瀛樺湪瀛愯妭鐐� 鏃犳硶鍒犻櫎"} + NotLogin = &Code{ http.StatusUnauthorized, false, "鐧诲綍澶辨晥锛岃閲嶆柊鐧诲綍"} + ComError = &Code{http.StatusInternalServerError, false, ""} ) diff --git a/router/router.go b/router/router.go index aaa388c..0e55716 100644 --- a/router/router.go +++ b/router/router.go @@ -38,11 +38,21 @@ eventPushController := new(controllers.EventPushController) pollConfigController := new(controllers.PollConfigController) fileController := new(controllers.FileController) + sysMenuController :=new(controllers.SysMenuController) urlPrefix := "/data/api-v" // wp 娣诲姞 璺緞 鍓嶇紑 - userApi := r.Group(urlPrefix + "/user") + sysApi := r.Group(urlPrefix + "/sys") { - userApi.POST("/login", userController.Login) + sysApi.POST("/login",userController.Login) + sysApi.POST("/logout",userController.Logout) + } + sysMenuApi := r.Group("/sysmenus") + { + sysMenuApi.GET("/me",sysMenuController.Me) + } + userApi := r.Group(urlPrefix + "/users") + { + userApi.GET("/current",userController.Current) } //鍖哄煙绠$悊 -- Gitblit v1.8.0