Skip to content

owenzhou/ginrbac

Repository files navigation

为什么要使用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用户登录")

About

包装gin,最像laravel的web框架,集成casbin,zap,redis,session,multitemplate等方便程序开发

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages