我一直在玩socket.io的聊天,我有一個問題:如何區分管理員用戶和普通用戶聊天室?我希望管理員擁有踢人和禁止人的權力,但我的用戶不會。如何區分socket.io中的Symfony用戶角色/組聊天
我正在使用Symfony來開發我的應用程序,並且我想爲聊天用戶使用其用戶數據庫。我爲我的Symfony應用的用戶使用FOSUserBundle。他們分成多個組,所以我有admin
組和其他組。
admin
組擁有ROLE_ADMIN
這意味着其中的每個用戶都具有該角色。這是管理員組,並且該組中的每個用戶應該有權禁止,踢,靜音等聊天室中的其他用戶。
爲了在聊天中使用我的Symfony用戶,我一直在閱讀Redis以獲得他們的會話,但我不確定如何區分我的管理員用戶和普通用戶。如何防止普通用戶向服務器發出請求,以執行用戶無法訪問的內容?因爲任何人都可以請求,但是如果這些請求來自存儲在Apache服務器上MySQL數據庫中的用戶,我如何驗證這些請求?
如果不是Symfony,那麼這可以在普通的PHP應用程序中完成?最後,管理員如何定義並不重要,但是如何將他連接到節點服務器以及如何使節點服務器與我的用戶數據庫一起工作。
我有一個簡單的加密和發送用戶數據到節點服務器的想法,然後解密它。只有兩臺服務器知道私鑰,因此即使客戶端掌握了加密數據,他也無法向另一客戶端發出請求。我可能會做一些IP檢查和時間戳。節點服務器上的解密數據可用於說明用戶是否是管理員並允許他發送某些請求。這是一個好主意還是有更好的方法?
可能重複http://stackoverflow.com/questions/26176359/socket-io-connect-role-authentication – pregmatch
不是重複的。這個問題si非常具體。 – Bogdan