ホームページ  >  記事  >  バックエンド開発  >  Cookie 認証を使用した Golang Websocket (Gorilla)

Cookie 認証を使用した Golang Websocket (Gorilla)

WBOY
WBOY転載
2024-02-11 18:03:081262ブラウズ

带 cookie 身份验证的 Golang Websocket (Gorilla)

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 トークンの生成/検証から始めましょう。

auth/auth.go ファイル リーリー

さて、ミドルウェア部分に移りましょう。

middlewares/middlewares.go ファイル リーリー

コンテキスト内で何かをアップロードできるようにするには、

c.set(key, value) メソッドを使用する必要があります。さて、ハンドラーの話に移りましょう。

handlers/handlers.go ファイル リーリー

handler.service.loginuser()

メソッドなど、欠落している部分は何をするのかわからないので省略します。コンテキストからコンテンツを正しく読み取るには、c.mustget(key) メソッドを使用する必要があります。

main.go

ファイル リーリー これが設定ロジックです。ここで言及する価値のあるものは何もありません。

他にサポートが必要な場合は、お知らせください。ありがとうございます。

以上がCookie 認証を使用した Golang Websocket (Gorilla)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。