合作页面的内容
This commit is contained in:
@@ -2,14 +2,12 @@ package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/niangaodev/art-code/config"
|
||||
"github.com/niangaodev/art-code/handlers"
|
||||
"github.com/niangaodev/art-code/middleware"
|
||||
"github.com/niangaodev/art-code/utils"
|
||||
)
|
||||
|
||||
func main() {
|
||||
@@ -17,40 +15,17 @@ func main() {
|
||||
config.InitDB()
|
||||
defer config.CloseDB()
|
||||
|
||||
// 初始化ip2region (如果文件不存在,将降级为普通IP记录)
|
||||
// 请确保在server根目录或合适位置放入 ip2region.xdb
|
||||
utils.InitIP2Region("ip2region.xdb")
|
||||
|
||||
// 创建Gin引擎
|
||||
router := gin.Default()
|
||||
router := gin.New()
|
||||
|
||||
// 配置CORS
|
||||
router.Use(func(c *gin.Context) {
|
||||
// 获取允许的域名,优先从环境变量获取,否则使用默认值
|
||||
allowedOrigins := os.Getenv("ALLOWED_ORIGINS")
|
||||
if allowedOrigins == "" {
|
||||
allowedOrigins = "http://localhost:5173,http://localhost:3000" // 开发环境默认值
|
||||
}
|
||||
|
||||
// 检查请求来源是否在允许列表中
|
||||
requestOrigin := c.Request.Header.Get("Origin")
|
||||
if requestOrigin != "" {
|
||||
// 简单的CORS origin检查
|
||||
for _, origin := range strings.Split(allowedOrigins, ",") {
|
||||
if strings.TrimSpace(origin) == requestOrigin {
|
||||
c.Writer.Header().Set("Access-Control-Allow-Origin", requestOrigin)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
c.Writer.Header().Set("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS")
|
||||
c.Writer.Header().Set("Access-Control-Allow-Headers", "Origin, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization")
|
||||
c.Writer.Header().Set("Access-Control-Allow-Credentials", "true")
|
||||
|
||||
if c.Request.Method == "OPTIONS" {
|
||||
c.AbortWithStatus(http.StatusNoContent)
|
||||
return
|
||||
}
|
||||
|
||||
c.Next()
|
||||
})
|
||||
// 配置中间件
|
||||
router.Use(middleware.CorsMiddleware())
|
||||
router.Use(middleware.AccessLogMiddleware()) // 添加访问日志中间件
|
||||
router.Use(gin.Recovery())
|
||||
|
||||
// API路由组
|
||||
api := router.Group("/api")
|
||||
@@ -132,9 +107,12 @@ func main() {
|
||||
authAdmin.PUT("/settings", middleware.PermissionMiddleware("settings", "update"), handlers.AdminUpdateSetting)
|
||||
authAdmin.DELETE("/settings/:key", middleware.PermissionMiddleware("settings", "delete"), handlers.AdminDeleteSetting)
|
||||
|
||||
// 仪表盘统计
|
||||
authAdmin.GET("/dashboard/stats", middleware.PermissionMiddleware("dashboard", "read"), handlers.GetDashboardStats)
|
||||
|
||||
// 文章管理
|
||||
authAdmin.GET("/posts", middleware.PermissionMiddleware("posts", "read"), handlers.AdminGetPosts)
|
||||
authAdmin.POST("/posts", middleware.PermissionMiddleware("posts", "create"), handlers.AdminCreatePost)
|
||||
authAdmin.POST("/posts", middleware.PermissionMiddleware("posts", "create"), handlers.CreatePost)
|
||||
authAdmin.PUT("/posts/:id", middleware.PermissionMiddleware("posts", "update"), handlers.AdminUpdatePost)
|
||||
authAdmin.DELETE("/posts/:id", middleware.PermissionMiddleware("posts", "delete"), handlers.AdminDeletePost)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user