hequan2017 / Go Admin
Licence: mit
go web api,包含gin+gorm+jwt+rbac等。
Stars: ✭ 298
Programming Languages
go
31211 projects - #10 most used programming language
Projects that are alternatives of or similar to Go Admin
Gin Web
由gin + gorm + jwt + casbin组合实现的RBAC权限管理脚手架Golang版, 搭建完成即可快速、高效投入业务开发
Stars: ✭ 107 (-64.09%)
Mutual labels: gin, jwt, rbac, casbin
Go Admin
基于Gin + Vue + Element UI的前后端分离权限管理系统脚手架(包含了:多租户的支持,基础用户管理功能,jwt鉴权,代码生成器,RBAC资源控制,表单构建,定时任务等)3分钟构建自己的中后台项目;文档:https://doc.go-admin.dev Demo: https://www.go-admin.dev Antd beta版本:https://preview.go-admin.dev
Stars: ✭ 5,439 (+1725.17%)
Mutual labels: gin, casbin, admin, jwt
rurality
开源运维平台设计及开发样例、CMS、RBAC、python开发教程、管理系统设计及开发样例、jenkinsfile(pipeline)/ansible使用教程,一切想到的,想不到的,应有尽有
Stars: ✭ 51 (-82.89%)
Mutual labels: cmdb, rbac
casbin-ex
An authorization library that supports access control models like ACL, RBAC, ABAC in Elixir
Stars: ✭ 37 (-87.58%)
Mutual labels: rbac, casbin
flask-authz
Use Casbin in Flask, Casbin is a powerful and efficient open-source access control library.
Stars: ✭ 100 (-66.44%)
Mutual labels: rbac, casbin
golang-gin-restfulAPI-example-app
An example Golang Restful API with [Gin, MongoDB, gin-jwt, gin-sessions, gin-authz, gin-swagger, validate.v9, casbin, go-ini]
Stars: ✭ 104 (-65.1%)
Mutual labels: gin, casbin
Casbin4D
An authorization library that supports access control models like ACL, RBAC, ABAC in Delphi
Stars: ✭ 25 (-91.61%)
Mutual labels: rbac, casbin
Takeoff
A rapid development environment using docker for convenience.
Stars: ✭ 271 (-9.06%)
Mutual labels: devops, jwt
laravel-casbin
This repository has moved to https://github.com/php-casbin/laravel-authz
Stars: ✭ 42 (-85.91%)
Mutual labels: rbac, casbin
sqlx-adapter
Asynchronous casbin adapter for mysql, postgres, sqlite based on sqlx-rs
Stars: ✭ 27 (-90.94%)
Mutual labels: rbac, casbin
fiber-boilerplate
This is the go boilerplate on the top of fiber web framework. With simple setup you can use many features out of the box
Stars: ✭ 184 (-38.26%)
Mutual labels: jwt, casbin
Baize
白泽自动化运维系统:配置管理、网络探测、资产管理、业务管理、CMDB、CD、DevOps、作业编排、任务编排等功能,未来将添加监控、报警、日志分析、大数据分析等部分内容
Stars: ✭ 296 (-0.67%)
Mutual labels: cmdb, devops
Maxkey
MaxKey is Single Sign On(SSO) System,Leading-Edge Enterprise-Class open source IAM(Identity and Access management) product.
Stars: ✭ 274 (-8.05%)
Mutual labels: jwt, rbac
actix-casbin-auth
Casbin Actix-web access control middleware
Stars: ✭ 40 (-86.58%)
Mutual labels: rbac, casbin
Go Web Admin
一个Go Web Api 后端 简单例子,包含 用户、权限、菜单、JWT 、 RBAC(Casbin)等!
表
- user
- username password
- role
- name
- menu
- name path method
API 注释
目录结构
- conf:用于存储配置文件
- docs: 文档
- sql执行命令
- API注释
- logs: 日志
- middleware:应用中间件
- inject 初始化对象
- jwt
- permission 权限验证
- models:应用数据库模型
- pkg:第三方包
- routers: 路由逻辑处理
- service: 逻辑处理
- test: 单元测试
权限验证说明
项目启动时,会自动user role menu 进行自动关联! 如有更改,会删除对应的权限,重新加载!
用户 关联 角色
角色 关联 菜单
权限关系为:
角色(role.name, menu.path, menu.method)
用户(user.username, role.name)
例如:
运维部 /api/v1/users GET
hequan 运维部
当hequan GET /api/v1/users 地址的时候,会去检查权限,因为他属于运维部 ,同时 运维部 有对应权限,所以本次请求会通过。
用户 admin 有所有的权限,不进行权限匹配
登录接口 /auth /api/v1/userInfo 不进行验证
请求
请求和接收 都是 传递 json 格式 数据
例如:
访问 /auth 获取token
{
"username": "admin",
"password": "123456"
}
访问 /api/v1/menus?page=2 页面是page
请求头设置 Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
访问 /api/v1/userInfo 获取用户信息
前端所需的权限 放在password字段里面,已经去重了。
"data": {
"lists": {
"id": 2,
"created_on": 1550642309,
"modified_on": 1550642309,
"deleted_on": 0,
"username": "hequan",
"password": ",system,menu,create_menu,update_menu,delete_menu,user,create_user,update_user,delete_user,role,create_role,update_role,delete_role",
"role": [
{
"id": 2,
"created_on": 0,
"modified_on": 0,
"deleted_on": 0,
"name": "运维部",
"menu": null
}
]
}
},
部署
支持
- 部署 Mysql
库
Create a go database and import SQL
创建一个库 go,然后导入sql,创建表!
配置文件
You should modify conf/app.ini
[database]
Type = mysql
User = root
Password =
Host = 127.0.0.1:3306
Name = go
TablePrefix = go_
安装部署
yum install go -y
export GOPROXY=https://goproxy.io
go get go-admin
cd $GOPATH/src/go-admin
go build main.go
go run main.go
热编译(开发时使用)
go get github.com/silenceper/gowatch
gowatch
运行
更新角色权限关系 [[hequan 运维部]]
角色权限关系 [[hequan 运维部]]
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
- using env: export GIN_MODE=release
- using code: gin.SetMode(gin.ReleaseMode)
[GIN-debug] POST /auth --> go-admin/routers/api.Auth (4 handlers)
[GIN-debug] GET /swagger/*any --> github.com/swaggo/gin-swagger.WrapHandler.func1 (4 handlers)
[GIN-debug] GET /api/v1/menus --> go-admin/routers/api/v1.GetMenus (6 handlers)
[GIN-debug] GET /api/v1/menus/:id --> go-admin/routers/api/v1.GetMenu (6 handlers)
[GIN-debug] POST /api/v1/menus --> go-admin/routers/api/v1.AddMenu (6 handlers)
[GIN-debug] PUT /api/v1/menus/:id --> go-admin/routers/api/v1.EditMenu (6 handlers)
[GIN-debug] DELETE /api/v1/menus/:id --> go-admin/routers/api/v1.DeleteMenu (6 handlers)
[GIN-debug] GET /api/v1/roles --> go-admin/routers/api/v1.GetRoles (6 handlers)
[GIN-debug] GET /api/v1/roles/:id --> go-admin/routers/api/v1.GetRole (6 handlers)
[GIN-debug] POST /api/v1/roles --> go-admin/routers/api/v1.AddRole (6 handlers)
[GIN-debug] PUT /api/v1/roles/:id --> go-admin/routers/api/v1.EditRole (6 handlers)
[GIN-debug] DELETE /api/v1/roles/:id --> go-admin/routers/api/v1.DeleteRole (6 handlers)
[GIN-debug] GET /api/v1/users --> go-admin/routers/api.GetUsers (6 handlers)
[GIN-debug] GET /api/v1/users/:id --> go-admin/routers/api.GetUser (6 handlers)
[GIN-debug] POST /api/v1/users --> go-admin/routers/api.AddUser (6 handlers)
[GIN-debug] PUT /api/v1/users/:id --> go-admin/routers/api.EditUser (6 handlers)
[GIN-debug] DELETE /api/v1/users/:id --> go-admin/routers/api.DeleteUser (6 handlers)
2019/05/31 14:48:43 [info] start http server listening :8000
Features
- RESTful API
- Gorm
- logging
- Jwt-go
- Swagger
- Gin
- Graceful restart or stop (fvbock/endless)
- App configurable
前端地址
开发者
- 何全
特别感谢
本项目主要参考了:
https://github.com/EDDYCJY/go-gin-example 包含更多的例子,上传文件图片等。本项目进行了增改。
https://github.com/LyricTian/gin-admin 主要为 gin+ casbin例子。
其他
## 更新API文档
swag init
##
cd /opt/go-admin
nohup go run main.go >> /tmp/go-http.log 2>&1 &
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].