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