liuxiaolong
2019-07-02 550d33415c0d6a3a78d6c23937dd06f312ba953a
implement me and current by token
4个文件已修改
83 ■■■■■ 已修改文件
controllers/sysMenu.go 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/user.go 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
extend/code/code.go 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/router.go 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,"")
    }
}
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){
}
extend/code/code.go
@@ -43,5 +43,7 @@
    //删除节点失败
    HasChildNodeError = &Code{http.StatusInternalServerError, false, "数据节点存在子节点 无法删除"}
    NotLogin = &Code{ http.StatusUnauthorized, false, "登录失效,请重新登录"}
    ComError = &Code{http.StatusInternalServerError, false, ""}
)
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)
    }
    //区域管理