From 855634cd45d48c5158f6c35ca29e130c88de160c Mon Sep 17 00:00:00 2001 From: Jacky Date: Mon, 29 Mar 2021 10:26:16 +0800 Subject: [PATCH] bug fix --- .gitignore | 2 ++ README.md | 8 +++++++ install.sh | 31 +++++++++++++++++++++++++ nginx-ui-frontend/src/lib/http/index.js | 4 +++- nginx-ui-frontend/version.json | 2 +- server/api/auth.go | 14 ++++++----- server/app.example.ini | 4 ++++ server/app.ini | 3 +-- server/go.mod | 1 + server/router/routers.go | 8 ++----- 10 files changed, 61 insertions(+), 16 deletions(-) create mode 100755 install.sh create mode 100644 server/app.example.ini diff --git a/.gitignore b/.gitignore index cceb9330..e7c1af13 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ database.db tmp node_modules +dist +app.ini diff --git a/README.md b/README.md index cb076a4a..67c19e14 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,11 @@ Yet another Nginx Web UI Version: 0.1 + +# 安装 +1. 克隆项目 +2. 运行 install.sh +3. 添加配置文件到 nginx +``` + +``` diff --git a/install.sh b/install.sh new file mode 100755 index 00000000..56cac1c8 --- /dev/null +++ b/install.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +echo "==========================" +echo +echo "Nginx UI Install Shell" +echo "Copyright (c) 0xJacky 2021" +echo +echo "==========================" + +echo "installing yarn..." +npm install -g yarn + +echo "Compiling frontend..." +cd nginx-ui-frontend || exit 1 +yarn build + +cd .. + +echo "Compiling api server..." +cd server || exit 1 +go build -o nginx-ui-server main.go + +echo "Installing acme.sh..." +go test -v test/acme_test.go + +echo "build completed" +cd .. + +echo "===============" +echo "frontend dist path: nginx-ui-frontend/dist" +echo "start server, run server/nginx-ui-server" diff --git a/nginx-ui-frontend/src/lib/http/index.js b/nginx-ui-frontend/src/lib/http/index.js index dc6d430e..05a4b920 100644 --- a/nginx-ui-frontend/src/lib/http/index.js +++ b/nginx-ui-frontend/src/lib/http/index.js @@ -35,7 +35,9 @@ http.interceptors.response.use( return Promise.resolve(response.data) }, async error => { - console.log(error) + if (error.response.status === 403) { + await store.dispatch('logout') + } return Promise.reject(error.response.data) } ) diff --git a/nginx-ui-frontend/version.json b/nginx-ui-frontend/version.json index a7904ae9..f115aafd 100644 --- a/nginx-ui-frontend/version.json +++ b/nginx-ui-frontend/version.json @@ -1 +1 @@ -{"version":"0.1.0","build_id":18} \ No newline at end of file +{"version":"0.1.0","build_id":20} \ No newline at end of file diff --git a/server/api/auth.go b/server/api/auth.go index feae1c87..05d6d6b6 100644 --- a/server/api/auth.go +++ b/server/api/auth.go @@ -51,12 +51,14 @@ func Login(c *gin.Context) { func Logout(c *gin.Context) { token := c.GetHeader("Authorization") - err := model.DeleteToken(token) - if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{ - "message": err.Error(), - }) - return + if token != "" { + err := model.DeleteToken(token) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{ + "message": err.Error(), + }) + return + } } c.JSON(http.StatusNoContent, gin.H{}) } diff --git a/server/app.example.ini b/server/app.example.ini new file mode 100644 index 00000000..4ebbc418 --- /dev/null +++ b/server/app.example.ini @@ -0,0 +1,4 @@ +[server] +HttpPort = 9000 +RunMode = debug +JwtSecret = diff --git a/server/app.ini b/server/app.ini index b160cfd9..fd4f4f1d 100644 --- a/server/app.ini +++ b/server/app.ini @@ -1,5 +1,4 @@ [server] HttpPort = 9000 RunMode = debug -WebSocketToken = f094ec2e-8455-48e1-a5c0-edabe1d79867 -JwtSecret = f094ec2e-8455-48e1-a5c0-edabe1d79867 +JwtSecret = F7AFBC0E-227E-40AC-918D-60122D725398 diff --git a/server/go.mod b/server/go.mod index da72d375..770cb06d 100644 --- a/server/go.mod +++ b/server/go.mod @@ -4,6 +4,7 @@ go 1.15 require ( github.com/appleboy/gin-jwt/v2 v2.6.4 + github.com/dgrijalva/jwt-go v3.2.0+incompatible github.com/dustin/go-humanize v1.0.0 github.com/gin-gonic/gin v1.6.3 github.com/gorilla/websocket v1.4.2 diff --git a/server/router/routers.go b/server/router/routers.go index 3f6cfbaa..984bf5aa 100644 --- a/server/router/routers.go +++ b/server/router/routers.go @@ -5,7 +5,6 @@ import ( "github.com/0xJacky/Nginx-UI/api" "github.com/0xJacky/Nginx-UI/model" "github.com/gin-gonic/gin" - "log" "net/http" ) @@ -23,11 +22,9 @@ func authRequired() gin.HandlerFunc { return } } - log.Println(c.Query("token")) - log.Println(token) n := model.CheckToken(token) - log.Println(n) + if n < 1 { c.JSON(http.StatusForbidden, gin.H{ "message": "auth fail", @@ -52,11 +49,10 @@ func InitRouter() *gin.Engine { }) r.POST("/login", api.Login) + r.DELETE("/logout", api.Logout) endpoint := r.Group("/", authRequired()) { - endpoint.DELETE("/logout", api.Logout) - endpoint.GET("domains", api.GetDomains) endpoint.GET("domain/:name", api.GetDomain) endpoint.POST("domain/:name", api.EditDomain)