私はsails.jsに基づいてチャットアプリケーションを構築しようとしています。特定のチャットからのメッセージのURLは次のようになります。Sails.jsソケットリクエストの承認
/api/chat/:id/messages
私はXHRでこのURLを要求すると、それは、セッションクッキーを提供し、sails.jsは、セッションオブジェクトを構築します。私は簡単に特定のチャットからのメッセージを読むためにユーザーの権利を確認することができます。
しかし、クライアントがmessages
コレクションの今後の変更をすべて購読できるように、このURLにsocket.ioをリクエストする必要があります。
私はこのURLにsocket.ioを要求すると、セッションクッキーは設定されず、sails.jsセッションは空です。だから、私はサーバー側のユーザー権利を確認することはできません。
私はソケット要求がHTTP要求ではないことを理解しています。彼らは自分でクッキーを提供しません。
簡単な回避策はありますか?
この問題を解決するには、クロスドメインが必要です。 www.foo.comにスクリプトを埋め込み、www.bar.comへのソケットを開くのと同じように? – mikermcneil
いいえ、マイク - ドメイン間の問題ではありません。私は最終的に答えを見つけ出し、それを下に掲示しました。ソケットセッションオブジェクトに別の方法でアクセスする必要があります。 S.おそらく、この回避策をsails.jsコアに実装するべきでしょう。 – alevkon