如何向 gorilla websocket 的 CheckOrigin 添加可信来源?

sup*_*rio 4 go websocket gorilla

我正在开发一个基于 websocket 的应用程序,其中前端是在 port 上运行的 vue.js 127.0.0.1:8080,后端是在 port 上运行的 golang 127.0.0.1:3000。前端应该与: serverUrl: "ws://127.0.0.1:3000/ws",

为了避免 CORS 问题,我必须true返回CheckOrigin

var upgrader = websocket.Upgrader{
    ReadBufferSize:  4096,
    WriteBufferSize: 4096,
    CheckOrigin: func(r *http.Request) bool {
        return true
    },
}
Run Code Online (Sandbox Code Playgroud)

但我知道它并不安全,因为这为任何 IP 连接到支持的IP 敞开了大门。我的问题是,如何限制它,使其只允许来自 的请求127.0.0.1:8080

我查看了文档,但找不到如何操作。

Cer*_*món 12

如果是可信站点,则从CheckOrigin函数返回 true 。

CheckOrigin: func(r *http.Request) bool {
    origin := r.Header.Get("Origin")
    return origin == "http://127.0.0.1:8080"
},
Run Code Online (Sandbox Code Playgroud)