ginrbac

module
v0.3.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 3, 2024 License: MIT

README

为什么要使用ginrbac?

正常开发权限管理系统 gin代码:

router := gin.New()
//获取用户列表
router.GET("/user/list", ...gin.HandlerFunc)
router.Run()

//然后还要手动插入数据库,方便使用人员授权时勾选,下面只写个sql语句意思下,大家都懂的...

insert into `permissions` ('name', 'url', 'method') values ('获取用户列表', '/user/list', 'GET')

是不是感觉我们开发人员好辛苦,写路由时写了一遍注释,还得插入数据库,再写一遍注释...

使用ginrbac开发权限管理,注释直接写在路由函数最后面:

a := app.NewApp()
a.Router.Get("/user/list", ...app.HandlerFunc, "获取用户列表")
a.Router.Get("/permissions", func(c *app.Context){
  //获取所有路由及注释
  routes := a.GetRoutes()
  c.JSON(200, app.H{
    "routes": routes,
  })
}, "获取权限列表")
a.Run()

#用户登录,简单示例

a.Router.Post("/sign", func(c *app.Context){
  credentials := map[string]interfade{}{
    "email": c.PostForm("email"),
    "password": c.PostForm("password"),
  }
  //在gin.Context包装了一层加入了 Auth方法
  signed := c.Auth().Attempt(credentials, true)
  if signed {
    c.JSON(200, app.H{
      "msg": "登录成功",
    })
    return
  }
  c.JSON(200, app.H{
    "msg": "登录失败",
  })
}, "ajax用户登录")

Directories

Path Synopsis
php
常用工具类
常用工具类

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL