Привет всем)) я тут опять вернулся к вопросу чата)) в качестве веб-сервера использую Workerman\Worker, но смысл мне кажется не поменяется если даже буду использовать Центрифугу или еще что то там.. Смысл в чем.. мне надо идентифицировать пользователя и в зависимости от того кто он - выдавать ему нужны права в чате. Правильная ли моя логика в этом направлени 1. При входе в чат запрашивает имя пользователя (в случае гостевого доступа) и это имя отправляется на сервер. (для админа и модераторов будет отдельная страница в хода с логином и паролем) 2. Я на сервере в табличку БД заношу пару "имя пользователя" и его сессию. 3. Дальше клиента редиректит на страницу чата и там уже создается сокет. 4. При отправке сообщения через сокет я добавляю имя пользователя и его ID сессии взятый из кук.. 5. Сокет сервер проверяет эту пару (имя и сессию) по базе и если все нормально то выполняет то что от него хотят.. Для того что бы сервер мог не только в чат что то посылать а еще что то и делать я просто создаю ключи в объекте отсылаемом с клиента. Код (Text): 'public' => [ 'phpsessid' => 'sdf6s9d87g6sd89f7gs', 'from'=> 'Alex', 'msg' => 'Hi all!' ], или если это приватное сообщение тогда Код (Text): 'private' => [ 'phpsessid' => 'sdf6s9d87g6sd89f7gs', 'from'=> 'Alex', 'to'=> 'Bob' 'msg' => 'Hi, Bob!' ], правильно я делаю?))
Мне кажется, лучше будет при авторизации выдавать только id(сессии), при нужде юзать её для обращения к базе(узнвать имя), и в базе сделать три таблицы: 1. Роли 2. Разрешения 3. Что роли могут делать(Many to many) А с приватным сообщением, просто у того, кто может это делать PHP: SELECT user_id FROM sessions WHERE id = 'id' SELECT * FROM roles_privilegies WHERE user_id = 'id' появляется переключатель между обычным и приватным. Я может быть неправильно понял вопрос?)
привет) у меня получается в системе два вида аунтентификации)) 1. Системные пользователи - те которые имеют доступ к системе)) админы, модераторы... что бы авторизироваться надо ввести логин и пароль. 2. Чатовые пользователи - когда они переходят по ссылке на чат им надо ввести имя и нажать вход (без парольный доступ). мы сейчас говорим о чатовых пользователях.. когда он вводит логин и нажимает ВХОД создается в БД запись с его ид сессии, ИД чата, именем... при его любом сообщении мы отсылаем на сервер эти три параметра и добавляем еще тело сообщения... таким образом я индентифицирую пользователя))