该项目是 gin+vue 的前后端分离项目, 使用 gorm 访问 MySQL, 其中 vue 前端是使用 vue-element-admin 框架简单实现的;
go 后台使用 jwt, 对 API 接口进行权限控制. 此外, web 页面在 token 过期后的半个小时内, 用户再次操作会自动刷新 token;
项目很小, 适合 gin 新手学习!(后续有时间会补上相关教程)
GitHub 地址: https://github.com/Bingjian-Zhu/gin-vue
一, 运行 go 后台项目
(1) 把项目 clone 到 GOPATH/src 目录下
(2) 在 MySQL 中新建 blog 数据库, 运行文件夹 / docs/sql 中的 MySQL.sql 脚本
(3) 在文件夹 / conf 中修改配置文件 API.INI 中的数据库连接配置
(4) 在 gin-vue 目录下运行: go run main.go
目前为止, gin 后台项目成功跑起来了
(5) 可能遇到的问题
如果在 GitHub 是用下载压缩包的形式, 解压后请把文件夹 gin-vue-master 重名为 gin-vue, 然后再复制到 / GOPATH/src 目录下
二, 使用 Postman 测试 API 接口
(1) 登录, token 过期时间设为 5 分钟
(2) 使用 token 调用 API 接口
(3)API 权限验证
当使用 admin 登录获取的 token 调用 / API/v1/table/list 接口时, 能获取到数据
改用 test 用户登录获取的 token 调用 / API/v1/table/list 接口时, 返回 403, 没有权限
(4) 刷新 token
当 token 过期后, 可以调用 / auth/refresh_token 接口重新获取 token, 再用获取到的 token 去调用接口
当然刷新 token 也是有有限期的, 这里设置了 1 个小时
(5) 简单看下接口运行的时间
三, 运行 vue-admin 项目
(1) 在 / gin-vue/vue-admin 目录下运行: NPM install
(2) 运行: NPM run dev
浏览器自动打开 , 然后就可以像文章开头的动图一样玩了
四, 总结
初步体验了 gin 框架, 总体上还是可以的
再次附上源码地址: https://github.com/Bingjian-Zhu/gin-vue
喜欢的请 star
来源: http://www.bubuko.com/infodetail-3164043.html