Cod*_*ody 7 cookies go websocket gorilla
这是我的设置:我正在使用用户登录构建服务(使用Negroni和Gorilla),在登录时,用户获取会话cookie,服务器使用该cookie来授权受保护的端点.其中一个受保护的端点允许用户/客户端使用服务器打开websocket,如下所示:
app := negroni.New()
r := mux.NewRouter()
r.HandleFunc("/auth/connection", func(rw http.ResponseWriter, req *http.Request) {
// authorize request using req.Cookie("session_id")
// create websocket
conn, err := upgrader.Upgrade(rw, req, nil)
if err != nil {
panic(err)
}
defer conn.Close()
// do stuff...
})
app.UseHandler(r)
app.Run(":3000")
Run Code Online (Sandbox Code Playgroud)
但是,req.Cookies()总是空的,这意味着我不能授权任何请求"/auth/connection"- 而且我几乎肯定它不是websocket客户端的问题(如果你很好奇,我正在使用这个Python包测试它:https ://github.com/liris/websocket-client).我是否正确接近websocket的身份验证?
任何帮助/建议将不胜感激!
服务器将 WebSocket 握手作为普通 HTTP 请求进行处理,直至调用 Upgrade。使用用于普通 HTTP 请求的任何身份验证。
Gorilla 包在带有 auth 注释的代码行中未运行。
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |