public channels function normally. For private channels, the error is:
⚠ [04:53:17] - 4JvRYXBHYYCJCB1UAAAD could not be authenticated to private-notification.1 {"message":"Unauthenticated."} Client can not be authenticated, got HTTP status 401
I tried every possible possibility and I did not succeed!I'm desperate because I have time to deliver this functionality. Can someone help me? Why can not I authenticate private channels with passport?
My current setting:
BroadcastServiceProvider.php
ublic function boot()
{
Broadcast::routes(['middleware' => 'auth:api']);
require base_path('routes/channels.php');
}
laravel-echo-server.json
{
"authHost": "http://ift.tt/2Clnvih",
"authEndpoint": "/broadcasting/auth",
"clients": [
{
"appId": "9c93c4f229bb615f",
"key": "6efe137de4101bc1b0429e6afd29e817"
}
],
"database": "redis",
"databaseConfig": {
"redis": {},
"sqlite": {
"databasePath": "/database/laravel-echo-server.sqlite"
}
},
"devMode": true,
"host": "http://ift.tt/2Clnvih",
"port": "6001",
"protocol": "http",
"socketio": {},
"sslCertPath": "",
"sslKeyPath": "",
"sslCertChainPath": "",
"sslPassphrase": ""
}
channels.php
Broadcast::channel('notification.1', function ($user, $lojaId) {
return true;
});
SendNotification.php
public function broadcastOn()
{
//return new Channel('notification');
return new PrivateChannel('notification.1');
}
my frontend (file vue)
Vue.use(VueEcho, {
broadcaster: 'socket.io',
host: 'localhost:6001',
auth: {
headers: {
Authorization: 'Bearer' + sessionStorage.getItem("ss348978Token")
},
},
});
.....
this.$echo.private('notification.1').listen('SendNotification', (payload) => {
this.mensagem.push(payload.data)
});
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire