sockets - ratchet websocket tutorial
Laravel Ratchet socket Auth (2)
Ok Jugando, encontré la solución y parece estar bien: estoy usando Sentinel
$session = (new SessionManager(App::getInstance()))->driver();
$cookies = $conn->WebSocket->request->getCookies();
$laravelCookie = urldecode($cookies[''timeline_auth'']);
$idSession = Crypt::decrypt($laravelCookie);
$user = Sentinel::findByPersistenceCode($idSession);
Si hay una mejor solución, por favor deje un comentario
Estoy empezando a aprender Ratchet (reaccionarPHP) Estoy usando laravel. Pero llegué a una línea sobre seguridad. ¿Cómo puedo denegar la conexión websocket en función de que el usuario haya iniciado sesión o no?
public function onOpen(ConnectionInterface $conn)
{
$this->clients->attach($conn);
$this->users[$conn->resourceId] = $conn;
if(Auth::check()){
echo ''user logged in'';
}else{
echo "New connection! ({$conn->resourceId})/n";
}
}
Usé algo así, pero pasa el Auth :: check y la consola siempre muestra New Connection.
Ya no puedes usar Auth :: user () con WebSocket. El servidor WebSocket maneja múltiples conexiones (por lo tanto, Auth :: user () dosent tiene sentido). PERO usted puede acceder a la sesión del usuario.
más detalles aquí
https://laravel.io/forum/01-16-2015-loading-laravels-session-using-ratchet