?
?
該項(xiàng)目是gin+vue的前后端分離項(xiàng)目,使用gorm訪問MySQL,其中vue前端是使用vue-element-admin
<https://panjiachen.github.io/vue-element-admin-site/>框架簡單實(shí)現(xiàn)的;
go后臺(tái)使用jwt,對API接口進(jìn)行權(quán)限控制。此外,Web頁面在token過期后的半個(gè)小時(shí)內(nèi),用戶再次操作會(huì)自動(dòng)刷新token;
項(xiàng)目很小,適合gin新手學(xué)習(xí)?。ê罄m(xù)有時(shí)間會(huì)補(bǔ)上相關(guān)教程)
GitHub地址:https://github.com/Bingjian-Zhu/gin-vue
<https://github.com/Bingjian-Zhu/gin-vue>
?
一、運(yùn)行g(shù)o后臺(tái)項(xiàng)目
(1)把項(xiàng)目clone到GOPATH/src目錄下
?
(2)在MySQL中新建blog數(shù)據(jù)庫,運(yùn)行文件夾/docs/sql中的mysql.sql腳本
?
(3)在文件夾/conf中修改配置文件api.ini中的數(shù)據(jù)庫連接配置
?
(4)在gin-vue目錄下運(yùn)行:go run main.go
目前為止,gin后臺(tái)項(xiàng)目成功跑起來了
?
(5)可能遇到的問題
* 如果在GitHub是用下載壓縮包的形式,解壓后請把文件夾gin-vue-master重名為gin-vue,然后再復(fù)制到/GOPATH/src目錄下
?
?二、使用Postman測試API接口
(1)登錄,token過期時(shí)間設(shè)為5分鐘
?
(2)使用token調(diào)用API接口
?
?
(3)API權(quán)限驗(yàn)證
當(dāng)使用admin登錄獲取的token調(diào)用/api/v1/table/list接口時(shí),能獲取到數(shù)據(jù)
改用test用戶登錄獲取的token調(diào)用/api/v1/table/list接口時(shí),返回403,沒有權(quán)限
?
?
(4)刷新token
當(dāng)token過期后,可以調(diào)用/auth/refresh_token接口重新獲取token,再用獲取到的token去調(diào)用接口
當(dāng)然刷新token也是有有限期的,這里設(shè)置了1個(gè)小時(shí)
?
?
(5)簡單看下接口運(yùn)行的時(shí)間
?
?
三、運(yùn)行vue-admin項(xiàng)目
(1)在/gin-vue/vue-admin目錄下運(yùn)行:npm install
?
(2)運(yùn)行:npm run dev
瀏覽器自動(dòng)打開 http://localhost:9528/#/login?redirect=%2Fdashboard
<http://localhost:9528/#/login?redirect=%2Fdashboard>,然后就可以像文章開頭的動(dòng)圖一樣玩了
?
四、總結(jié)
初步體驗(yàn)了gin框架,總體上還是可以的
?
再次附上源碼地址:https://github.com/Bingjian-Zhu/gin-vue
<https://github.com/Bingjian-Zhu/gin-vue>
喜歡的請star
?
熱門工具 換一換