Преглед изворни кода

fix(widget): 修复跨域 CORS 问题

- CORS 中间件改用 AllowOriginFunc 回显具体 origin,替代 AllowAllOrigins:*
- userRoute 添加 CORS 中间件,登录接口支持跨域请求
- Widget fetch 移除 credentials: 'include',无需 Cookie
master
fengsilin пре 3 недеља
родитељ
комит
763cf86a7a
4 измењених фајлова са 6 додато и 3 уклоњено
  1. +4
    -1
      middleware/cors.go
  2. +1
    -0
      router/api-router.go
  3. +1
    -1
      web/dist/static/login-widget.js
  4. +0
    -1
      web/widget/LoginForm.jsx

+ 4
- 1
middleware/cors.go Прегледај датотеку

@@ -8,7 +8,10 @@ import (

func CORS() gin.HandlerFunc {
config := cors.DefaultConfig()
config.AllowAllOrigins = true
config.AllowAllOrigins = false
config.AllowOriginFunc = func(origin string) bool {
return true
}
config.AllowCredentials = true
config.AllowMethods = []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"}
config.AllowHeaders = []string{"*"}


+ 1
- 0
router/api-router.go Прегледај датотеку

@@ -59,6 +59,7 @@ func SetApiRouter(router *gin.Engine) {
apiRouter.POST("/verify", middleware.UserAuth(), middleware.CriticalRateLimit(), controller.UniversalVerify)

userRoute := apiRouter.Group("/user")
userRoute.Use(middleware.CORS())
{
userRoute.POST("/register", middleware.CriticalRateLimit(), middleware.TurnstileCheck(), controller.Register)
userRoute.POST("/login", middleware.CriticalRateLimit(), middleware.TurnstileCheck(), controller.Login)


+ 1
- 1
web/dist/static/login-widget.js
Разлика између датотеке није приказан због своје велике величине
Прегледај датотеку


+ 0
- 1
web/widget/LoginForm.jsx Прегледај датотеку

@@ -23,7 +23,6 @@ export default function LoginForm({ apiUrl, onSuccess, onError }) {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username: username.trim(), password }),
credentials: 'include',
});
const data = await res.json();



Loading…
Откажи
Сачувај