Jacky 4 år sedan
förälder
incheckning
855634cd45

+ 2 - 0
.gitignore

@@ -3,3 +3,5 @@
 database.db
 tmp
 node_modules
+dist
+app.ini

+ 8 - 0
README.md

@@ -2,3 +2,11 @@
 Yet another Nginx Web UI
 
 Version: 0.1
+
+# 安装
+1. 克隆项目
+2. 运行 install.sh
+3. 添加配置文件到 nginx
+```
+
+```

+ 31 - 0
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"

+ 3 - 1
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)
     }
 )

+ 1 - 1
nginx-ui-frontend/version.json

@@ -1 +1 @@
-{"version":"0.1.0","build_id":18}
+{"version":"0.1.0","build_id":20}

+ 8 - 6
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{})
 }

+ 4 - 0
server/app.example.ini

@@ -0,0 +1,4 @@
+[server]
+HttpPort = 9000
+RunMode = debug
+JwtSecret =

+ 1 - 2
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

+ 1 - 0
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

+ 2 - 6
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)