2017-02-24 2 views
2

개인 채널이 있습니다. 그리고 사이트에서 인증을받은 경우에만 사용할 수 있습니다. 그러나 laravel 여권의 경우 나는 그것이 어떻게 작동해야하는지 전혀 모른다. 기본적으로 내가 필요한 모든 것은 쿠키에 포함되어 있습니다. 는 내가 무엇을 가지고 : websocket을 통한 laravel 여권 인증

Broadcast::routes(); 
Broadcast::channel('App.User.{id}', function ($user, $id) { 
    return (int) $user->id === (int) $id; 
}); 

Broadcast::routes(['middleware' => ['api']]);

가 영향을주지 않습니다.

laravel 패스포트를 통해 사용자를 인증하는 방법은 사설 채널 websocket에 연결되기 때문에 어떻게해야합니까?

답변

1

불행히도 현재 에코는 laravel 여권의 도움으로 인증을 지원하지 않으므로 직접 sokket.io 서버를 작성해야합니다.

2

나는 이것을 끝내고 내 솔루션은 Laravel Echo를 사용했다. & Laravel Echo Server for SocketIo.

let Echo = require('laravel-echo') 

window.Echo = new Echo({ 
     broadcaster: 'socket.io', 
     host: window.location.hostname + ':6001' 
     auth: { 
      headers: { 
       Authorization: 'Bearer ' + AUTH_API_TOKEN, 
      }, 
     }, 
    }); 

참고 :

    다음과 같이 인스턴스 또는 Laravel 에코를 다시 인스턴스화하는 동안

    다음, 사용자 액세스 토큰을 검색 쿠키 또는 응용 프로그램 스토리지에 저장하고 주입
  1. https://laravel.com/docs/5.3/broadcasting#driver-prerequisites
  2. https://github.com/tlaverdure/laravel-echo-server