Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Доброго времени!
Laravel 5.2. Для чата используется websocket на php "orchid socket" - GitHub - Orchid Socket
если не использовать ф-цию getUserFromSession($conn), то работает прекрасно. Но как-раз требуется идентифицировать пользователя на стороне сервера. Данный Package (вроде бы на Ratchet) позволяет это сделать по кукам, но что-то не работает:
public function getUserFromSession($conn){
$session = (new SessionManager(App::getInstance()))->driver();
$cookies = $conn->WebSocket->request->getCookies();
// Но где-то здесь, при попытке получить куки закрывается соединение с кодом 1000
// Может потому-что $session возвращает пустой объект? (проверил). А почему пустой?
// Все что ниже по ходу уже не имеет смысла
$laravelCookie = urldecode($cookies[Config::get('session.cookie')]);
$idSession = Crypt::decrypt($laravelCookie);
$session->setId($idSession);
$conn->session = $session;
$conn->session->start();
$userId = $conn->session->get(Auth::getName());
}
Изменено Yurri_87 (15.09.2017 14:11:03)
Не в сети
пока вижу решение без идентификации на стороне сервера, но с использованием уникального токена : генерировать токен (символов 30) для каждого разговора, как идентификатор разговора и перед началом беседы помещать его в input type="hidden" и передавать в сообщении. На стороне сервера делать вставку данных в БД, взависимости от этого токена без идентификации. Уж перебором токенов вряд ли кто будет заниматься чтобы в чужой чат что-то написать.
Но все-же вопрос остается открытым - почему не работает идентификация по кукам.
Не в сети
Здравствуй, почему ты не создашь issues?
У меня метод getUserFromSession описанный в доке, прекрасно работает (Laravel 5.3/5.5).
Если проблема актуальна напишете в телеграмм @tabuna и мы решим это.
Не в сети