ここに私のセットアップがあります: ユーザーログインを使用して (Negroni と Gorilla を使用して) サービスを構築しています。ログインすると、ユーザーは、サーバーが保護されたエンドポイントを承認するために使用するセッション Cookie を取得します。保護されたエンドポイントの 1 つは、次のように、ユーザー/クライアントがサーバーで 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")
ただし、req.Cookies()常に空であり、リクエストを承認できないことを意味"/auth/connection"し、websocket クライアントの問題ではないとほぼ確信しています (興味がある場合は、この Python パッケージを使用してテストしています: https ://github.com/liris/websocket-client )。Websocket の認証に正しく取り組んでいますか?
どんな助け/アドバイスも大歓迎です!