Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

203
Views
Empujador que autoriza el error con SPA/React y Laravel Passport

Estoy tratando de escuchar un canal privado a través de la web y la protección API. La siguiente configuración funciona bien en web guard. Sin embargo, parece que tengo problemas para autorizar la API desde SPA/React. Estoy usando Laravel Passport como mi controlador de API de guardia.

configuración

 import Echo from "laravel-echo"; let e = new Echo({ broadcaster: "pusher", key: KEY, cluster: CLUSTER, authEndpoint: `/broadcasting/auth`, forceTLS: true, auth: { headers: { Accept: "application/json", Authorization: `Bearer ${TOKEN}` } } });

Cómo trato de suscribirme en useEffect

 useEffect(() => { e.private("orders_36") .listen(".OrderChange", (e) => { console.log(e); }) .subscribed((e) => console.log(e, "subscribed")) .error((e) => console.log(e, "error")); }, []);

el error que me sale

 {type: "AuthError", error: "Unable to retrieve auth string from auth endpoint - received status: 405 from /broadcasting/auth. Clients must be authenticated to join private or presence channels. See: https://pusher.com/docs/authenticating_users", status: 405}

Descomenté BroadcastServiceProvider de config/app.php, luego escribí el siguiente código en BroadcastServiceProvider.

ProveedorServicioDifusión.php

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

rutas/canales.php

 Broadcast::channel('orders_{id}', function ($id) { return Auth::guard('api')->id() == $id; });

app/Eventos/CambiarPedido.php

 class OrderChange implements ShouldBroadcast { use Dispatchable, InteractsWithSockets, SerializesModels; public $order; public function __construct($order) { $this->order = $order; } public function broadcastOn() { return new PrivateChannel('orders_'.$this->order->user_id); } public function broadcastAs() { return 'OrderChange'; } public function broadcastWith() { return [ 'order' => $this->order, ]; } }

El código para la transmisión de llamadas en Controller

 broadcast(new OrderChange(OrderResource::make($order)))->toOthers();

He buscado en todas partes, pero las soluciones proporcionadas no parecen funcionar.

over 4 years ago · Santiago Trujillo
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!