푸셔 사용 시 Larabel 5.7의 '/broadcasting/auth 401(Unauthorized)' 오류를 수정하는 방법
SPA에서 푸셔를 셋업하려고 합니다.Larabel 5.7과 Vus js에서 앱을 개발하여 인증에 jwt를 사용하고 있습니다.
My Boostrap.js는 다음과 같습니다.
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
encrypted: true,
auth: {
headers: {
Authorization: JWTtoken
}
}
});
JWTtoken
로그인 후 JWT에서 토큰을 받습니다.
Broadcast Service Provider는 다음과 같습니다.
config/app.php에서 코멘트를 하지 않았습니다.
class BroadcastServiceProvider extends ServiceProvider
{
public function boot()
{
Broadcast::routes(['middleware' => 'jwt.auth']);
require base_path('routes/channels.php');
}
}
My Channels.php 파일은 다음과 같습니다.
Broadcast::channel('App.User.{id}', function ($user, $id) {
return (int) $user->id === (int) $id;
});
또한 어플리케이션 전체가 jwt에서 유일한 인증방식으로 동작하는 것을 확인했습니다.
config/auth.displaces
UserEvent라는 이름의 My Event는 다음과 같습니다.
class UserEvent implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function broadcastAs()
{
return 'themechanged';
}
public function broadcastOn()
{
return new PrivateChannel('App.User.'.$this->user->id);
}
}
그 후 vue 컴포넌트에서는 다음과 같이 했습니다.
Echo.private('App.User.1')
.notification('themechanged', (data) => {
console.log(data)
})
콘솔에 다음 오류가 나타납니다.broadcasting/auth 401 (Unauthorized)
언급URL : https://stackoverflow.com/questions/55920283/how-to-fix-broadcasting-auth-401-unauthorized-error-in-laravel-5-7-when-usi
'programing' 카테고리의 다른 글
Vue 2 및 Vuex에서 전달된 프로펠러를 변수로 사용하여 오브젝트 속성에 동적으로 액세스하면 오류가 반환된다. (0) | 2022.08.19 |
---|---|
Vue 로딩 시 이미지를 페이드하는 방법 (0) | 2022.08.19 |
Vuetify Vuex에서 API의 외부 데이터와 함께 데이터 테이블을 사용합니다. (0) | 2022.08.19 |
vue.js 템플릿 내의 php 어레이에 액세스합니다. (0) | 2022.08.18 |
Java에서 바이트 배열을 정수로 변환하거나 그 반대로 변환합니다. (0) | 2022.08.18 |