Web 開発では認証は不可欠な機能であり、Cookie ベースの認証が一般的な方法です。 Golang は効率的で簡潔なプログラミング言語として、強力な Web 開発機能を備えています。この記事では、Gorilla ツールキットを使用して Golang で Cookie 認証による Websocket 機能を実装し、アプリケーションの安全性と信頼性を高める方法を紹介します。 Golang の初心者でも経験豊富な開発者でも、この記事はすぐに使い始めるのに役立ちます。見てみましょう!
ゴリラWebSocketを使ってチャートを起動しようとしています。 認証ミドルウェアは、Cookie と JWT トークンを介して機能します。 http 経由のエンドポイントはすべて機能しますが、WebSocket は機能しません。 Cookie 認証を使用したゴリラ WebSocket などのトピックをたくさん読んだ後、Cookie が空であり、WebSocket 接続のコンテキストも空であることがわかりました。私はなぜなのか理解していない?誰か理由を説明できますか? p.s.: そのハンドラーからアップグレードを削除しようとしたところ、Cookie とコンテキストは正常に通過しましたが、WebSocket プロトコルへの接続をアップグレードした後は失敗しました。 これは私のファイルです: 終点: ### リーリー
ws_ハンドラーリーリー
ミドルウェア:リーリー
他のエンドポイントはすべて機能します。他のコードが必要な場合はお知らせください。問題は単純だと思っていましたが、何かを誤解していたので、問題をさらに複雑にしたくありません( ご協力とアドバイスをありがとうございます。p.s.: ミドルウェアをオフにすると、すべてが期待どおりに動作します。
更新: 検証および生成機能を追加しました
リーリー
jwt文字列を含むCookieを追加したログイン機能を追加しましたリーリー
ヘルプ後に更新: 問題は、郵便配達員のセットアップ リクエストで Cookie を正しく指定しなかったことです。 解決策問題の解決をお手伝いさせてください。まず、関連する部分のみに焦点を当てるために例を少し簡略化しました。何かを省略する必要がある場合は、お知らせください。回答を更新します。まず、ローカルのauth パッケージ内の
jwt トークンの生成/検証から始めましょう。
ファイル
リーリー
ファイル
リーリー
c.set(key, value) メソッドを使用する必要があります。さて、ハンドラーの話に移りましょう。
ファイル
リーリー
メソッドなど、欠落している部分は何をするのかわからないので省略します。コンテキストからコンテンツを正しく読み取るには、c.mustget(key)
メソッドを使用する必要があります。
リーリー
これが設定ロジックです。ここで言及する価値のあるものは何もありません。 以上がCookie 認証を使用した Golang Websocket (Gorilla)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。