私は現在、SignalRとウェブソケットで遊んでいます。私の研究では、WebSocketはカスタムヘッダーをサポートしていないため、基本的にトークンベース認証中にWebSocket接続を認証する方法は2つしかないようです。 WithCredentialsが真クライアントとサーバーが別々のドメインにあるwebsocket接続を認証するにはどうすればよいですか?
第一の方法に設定されているときに、サーバーに渡されるCookieにトークンを保存するクエリ文字列 2)でトークンを渡す
1)がない偉大な練習です - さえ通過
2番目の方法はローカルマシンで作業していますが、クライアントとサーバーが異なるドメインに存在するため、一度展開すると動作しません。ですから、基本的には、ドメインが1つのAngularサイト(例:client.com)と全く異なるドメイン(たとえばserver.com)を持つCORSのWebAPIサイトがあります。私のブラウザでは、私がclient.comにいると、要求に応じてserver.comに送られるクッキーを設定できません。
クライアントとサーバーが異なるドメインにあるときにWebソケットを認証する良い方法は何ですか?
これは私が言っていることです。私はJWTトークンベースの認証を使用しており、WebSocketはカスタムヘッダーをサポートしていないため、ヘッダーとして送信できません。サーバーが別のドメインに存在するため、Cookieを使用できません。 – Diskdrive
使用しているWebSocketサーバーの実装は何ですか? –
SignalR - これは問題ではありません。カスタムヘッダをサポートしていないブラウザAPIに問題があります – Diskdrive