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