Пользовательский маршрут авторизации канала Laravel Echo Presence с данными сеанса?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Пользовательский маршрут авторизации канала Laravel Echo Presence с данными сеанса?

Сообщение Anonymous »

Я использую канал присутствия, чтобы получить количество участников LIVE в прямой трансляции и отобразить этот #, а также имена и фамилии пользователей на странице. Проблема в том, что участники мероприятия никак не аутентифицируются. Я нашел ответ здесь, на StackOverflow, с помощью этого кода, который представляет собой своего рода способ обойти традиционную аутентификацию.

Код: Выделить всё

Route::post('/my/custom/broadcast/auth/route', function () {
$user = new GenericUser(['id' => microtime()]);

request()->setUserResolver(function () use ($user) {
return $user;
});

return Broadcast::auth(request());
});

Broadcast::channel('my-room-name', function ($user) {
return [
'id' => $user->id,
];
});
Все работает, я подделал аутентификацию пользователя, могу присоединиться к каналу и все. Проблема сейчас в том, что мне нужны реальные данные участников LIVE. У меня есть идентификатор участника, сохраненный в переменной сеанса Laravel, и у меня есть данные каждого участника в таблице, назовем ее таблицей участников. Как я могу использовать этот идентификатор участника сеанса (или другим способом!) и передать его в собственный маршрут авторизации? Я попробовал защиту и промежуточное программное обеспечение, но не смог заставить его работать без упомянутого выше кода Hacky. Можно ли будет передавать данные из интерфейса в Echo? (См. эту ссылку):
https://laravel.com/docs/9.x/broadcasti ... on-request
В идеале то, что я хочу иметь в Channel.php это:

Код: Выделить всё

Broadcast::channel('my-room-name', function ($user) {
return [
'id' => $user->registrant_id,
'first_name' => $user->first_name,
'last_name' => $user->last_name,
];
});
Как это сделать??

Подробнее здесь: https://stackoverflow.com/questions/791 ... ssion-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»