gin-cors应用时遇到的问题

在自建登录系统中遇到登出报错,发现问题是由于跨域中间件的正则表达式匹配不当导致。使用Postman可以绕过此问题,因它不涉及跨域。通过修改本地host文件,验证地址发生变化,但实际意义有限。

自己做一个登录的过程中,发现登出的时候一直报错。打断点也没有进入到登录验证的方法,但是用postman访问却好使。找了半天,最后发现问题在解决跨域的中间件上。

这个地方的正则表达式匹配的有问题,因为这个中间件并不是我自己写的,所以最开始没有发现问题。此处贴上复制的别人的框架:https://github.com/bydmm/singo

问题解决,发现个问题。就是postman发送的请求并不涉及跨域,所以没有问题。而此处验证的地址是请求头中的Origin属性,询问同学时说改本地的host就可以绕过这个验证,这个验证其实意义不大。试了一下,将本地的域名修改了一下:

通过新域名访问网页,后台接受到的域名也确实发生了变化,只是单纯的这么设置确实意义不大,不过又学习到了新的知识。

2025/09/06 14:25:42 [Recovery] 2025/09/06 - 14:25:42 panic recovered: GET /api/task/getTkPlanTaskById?id=167105 HTTP/1.1 Host: 127.0.0.1:8080 Accept: */* Accept-Encoding: gzip, deflate, br Authorization: * Cache-Control: no-cache Connection: keep-alive Postman-Token: d8fc52d3-4c4e-4880-b220-1de8d9907a74 User-Agent: PostmanRuntime/7.45.0 runtime error: invalid memory address or nil pointer dereference D:/yasuo/Go/src/runtime/panic.go:262 (0xbb3a77) panicmem: panic(memoryError) D:/yasuo/Go/src/runtime/signal_windows.go:401 (0xbb3a47) sigpanic: panicmem() D:/workspaces/GoProject/src/gitee.com/zimo1202/mes-go/models/task/task.service.go:237 (0x15b0f73) (*Task).GetTkPlanTaskByIdHandler: userName = middleware.GetIdFromClaims("username", t.Claims) D:/workspaces/GoProject/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174 (0xfd3a0e) (*Context).Next: c.handlers[c.index](c) D:/workspaces/GoProject/pkg/mod/github.com/gin-gonic/gin@v1.9.1/recovery.go:102 (0xfd39fb) CustomRecoveryWithWriter.func1: c.Next() D:/workspaces/GoProject/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174 (0xfce58a) (*Context).Next: c.handlers[c.index](c) D:/workspaces/GoProject/src/gitee.com/zimo1202/mes-go/middleware/cors.go:50 (0x196a457) main.Cors.func3: c.Next() // 处理请求 D:/workspaces/GoProject/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174 (0xfce58a) (*Context).Next: c.handlers[c.index](c) D:/workspaces/GoProject/src/gitee.com/zimo1202/mes-go/middleware/op_log.go:102 (0x1969e2b) main.OpLog.func2: c.Next() D:/workspaces/GoProject/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174 (0xfce58a) (*Context).Next: c.handlers[c.index](c) D:/workspaces/GoProject/src/gitee.com/zimo1202/mes-go/middleware/request_id.go:15 (0x19696ce) main.RequestId.func1: c.Next() D:/workspaces/GoProject/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174 (0xfd284d) (*Context).Next: c.handlers[c.index](c) D:/workspaces/GoProject/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:620 (0xfd24e4)
09-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值