私は小さなマルチプレイヤーゲームに取り組んでいます。私は認証を導入したいと思います。私はNode.jsとSocket.ioを使用しています。socket.ioソケット確立後の認証
メインページが到着したとき - ログインしているかどうかに関わらずゲームに参加してもらいたいが、誰でもその中で何もできない(時計のみ)。
どうすれば、すでに開いているソケットでユーザーを認証することができますか?
私がサイトを離れて戻っても認証を維持できますか?あなたはウェブソケットを通してクッキーを渡すことができますか?私の質問を促進するために
EDIT
。考えられる考えのひとつは、websocket接続を提供することです。ログインしようとすると、ユーザ名とパスワードがwebsocketにメッセージとして渡されます。
client.on('onLogin', loginfunction);
私は、そのセッションは、そのユーザーに認証されていると言って、ソケットのセッションIDを取得し、どこかにそれを渡し、データベースに対してチェックし、ユーザー名とパスワードを取ることができます。
これは安全ですか?ソケットにクッキーを実装して戻ってくることができますか? socket.ioには、受信した各メッセージを手動でチェックするのではなく、ソケットが認証されたことを示す方法がありますか?
乾杯
を?ユーザーは、既存の接続の準備ができたらログインの詳細を提供し、サーバーは一意のセッションIDを検証して返すことができます。クライアント側のjavascriptは、将来の使用のためにクッキーを保存することができます。 –
socket.ioセッションを認証する方法については、[この記事(http://www.danielbaulig.de/socket-ioexpress/)]を参照してください。 – fent
はい、実際に記事を読んでいます。クッキーを設定するのはとても幸せですが、ソケットがすでに開いている場合、同じページにログインすることはできません。おそらく、ユーザーがクッキーを無効にしている場合は、おそらく苦しんでいますか? –