私はsocket.ioのチャットで少し遊んでいました。質問があります:管理者ユーザーと一般ユーザーを区別するにはどうすればよいですかチャットルーム?私は、管理人に、人を蹴ったり禁止したりする権限を持たせたいが、私のユーザーはそうしないようにしたい。socket.io chatでsymfonyのユーザーロール/グループを区別する方法
私はアプリケーションを開発するためにSymfonyを使用しています。チャットユーザーにはそのユーザーデータベースを使用したいと思います。私はsymfonyアプリケーションのユーザーにFOSUserBundleを使用しています。それらは複数のグループに分割されているので、私はadmin
グループなどを持っています。
admin
グループにはROLE_ADMIN
が含まれています。つまり、その内部の各ユーザーにその役割が割り当てられています。これは管理者グループであり、このグループの各ユーザーはチャットルーム内の他のユーザーを禁止、蹴る、ミュートするなどの権限を持つ必要があります。
チャットで私のSymfonyユーザーを使用するために、私は彼らのセッションを取得するためのRedisに読んでいましたが、私は私の管理ユーザーと通常のユーザーとの違いを作る方法を正確にはわかりません。通常のユーザーがサーバーにアクセスしてユーザーがアクセスできない何かを要求しないようにするにはどうすればよいですか?誰でもリクエストを行うことができますが、のリクエストは、ApacheサーバーのMySQLデータベースに格納されているユーザーからのものであることを確認できますか?
symfonyでない場合、これは通常のPHPアプリケーションでどのように行うことができますか?最後に、管理者の定義方法は関係ありませんが、ノードサーバーに接続する方法、ノードサーバーをユーザーデータベースと連携させる方法については問題ありません。
ユーザーのデータを単純に暗号化してノードサーバーに送信し、そこから復号化するという考えがありました。 2台のサーバだけが秘密鍵を知っているので、クライアントが暗号化されたデータを手にしても、他のクライアントに対して要求を行うことはできません。私はいくつかのIPチェックとタイムスタンプを行うかもしれません。ノードサーバー上の復号化されたデータを使用して、ユーザーが管理者であるかどうかを知らせ、特定の要求を送信することができます。これは良いアイデアですか、それとも良い方法ですか?
多分、http://stackoverflow.com/questions/26176359/socket-io-connect-role-authenticationの複製 – pregmatch
重複していません。この質問はかなり具体的です。 – Bogdan