We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Presence and Private Channel Not working in Laravel Sanctum SPA Authentication. It's only working in public channel.
#Please help me. I have been struggling last 7 days.
I am using Qiralab Sanctum Github Repo also so here is not problem in authentication I think so.
Here is my github code: https://github.com/joneyspark/spa-chat-ws
#MessageSent.php
class MessageSent implements ShouldBroadcast { use Dispatchable, InteractsWithSockets, SerializesModels; public $message; public function __construct(Message $message) { $this->message = $message; } public function broadcastOn() { return new PresenceChannel('chat'); } }
#ChatsController.php
class ChatsController extends Controller { public function fetch_messages() { return Message::with('user')->get(); } public function send_messages(Request $request) { $message = auth()->user()->messages()->create([ 'message' => $request->message ]); broadcast(new MessageSent($message->load('user')))->toOthers(); return ['status' => 'success']; } }
#channels.php
Broadcast::channel('chat', function ($user) { return $user; });
#BroadcastServiceProvider
class BroadcastServiceProvider extends ServiceProvider { public function boot() { Broadcast::routes(['middleware' => ['auth:sanctum']]); require base_path('routes/channels.php'); } }
#Vue CLI
import Echo from "laravel-echo"; import Request from "./apis/Request"; window.Pusher = require("pusher-js"); window.Echo = new Echo({ broadcaster: "pusher", key: process.env.VUE_APP_WEBSOCKETS_KEY, wsHost: process.env.VUE_APP_WEBSOCKETS_SERVER, wsPort: 6001, forceTLS: false, disableStats: true, enabledTransports: ["ws", "wss"], authorizer: (channel, options) => { console.log("OPTIONS>>", options); return { authorize: (socketId, callback) => { Request.POST_REQ("/broadcasting/auth", { socket_id: socketId, channel_name: channel.name, withCredentials: true, }) .then((response) => { callback(false, response.data); console.log("RESPONSE>>", response); }) .catch((error) => { callback(true, error); }); }, }; }, });
#Chat.vue
created() { this.fetchMessages(); window.Echo.join("chat").listen("MessageSent", (event) => { console.log(event.message); this.messages.push(event.message); }); },
#.env
VUE_APP_WEBSOCKETS_KEY = local VUE_APP_WEBSOCKETS_SERVER = 127.0.0.1
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Presence and Private Channel Not working in Laravel Sanctum SPA Authentication. It's only working in public channel.
#Please help me. I have been struggling last 7 days.
I am using Qiralab Sanctum Github Repo also so here is not problem in authentication I think so.
Here is my github code:
https://github.com/joneyspark/spa-chat-ws
#MessageSent.php
#ChatsController.php
#channels.php
#BroadcastServiceProvider
#Vue CLI
#Chat.vue
#.env
The text was updated successfully, but these errors were encountered: