Я немного играл в чате socket.io, и у меня есть вопрос: как я могу различать пользователя администратора и обычного пользователя в комнате чата? Я бы хотел, чтобы администратор обладал такими полномочиями, как пинание и запрет людей, но моим пользователям это не нравится.
Я использую Symfony для разработки моего приложения, и я бы хотел использовать его пользовательскую базу данных для пользователей чата. Я использую FOSUserBundle для пользователей приложений Symfony. Они разделены на несколько групп, поэтому у меня есть группа admin
и другие.
Группа admin
имеет ROLE_ADMIN
, что означает, что каждый пользователь внутри нее имеет эту роль. Это группа админов, и каждый пользователь этой группы должен иметь разрешения запрещать, удалять, отключать звук и т.д. Других пользователей в чате.
Для использования пользователей Symfony в чате я читал в Redis, чтобы получить их сеансы, но я не совсем уверен, как сделать разницу между пользователями admin и обычными пользователями. Как я могу запретить регулярному пользователю делать запрос на сервер, который делает то, к чему у пользователя нет доступа? Поскольку каждый может выполнять запросы, но , как я могу проверить эти запросы, если они поступают от пользователей, хранящихся в базе данных MySQL на сервере Apache?
Если не для Symfony, как это можно сделать в обычном PHP-приложении? В конце концов, не имеет значения, как определяется админ, но как подключить его к серверу Node и как заставить сервер Node работать с моей пользовательской базой данных.
У меня возникла идея просто зашифровать и отправить пользовательские данные на сервер Node, а затем расшифровать его там. Только два сервера знают секретные ключи, поэтому даже если клиент получает зашифрованные данные, он не может сделать запрос с ним для другого клиента. Я могу выполнить проверку IP и временную метку. Дешифрованные данные на сервере Node могут затем использоваться, чтобы сказать, является ли пользователь администратором или нет, и разрешить ему отправлять определенные запросы. Это хорошая идея или есть лучший способ?