发送 POST 请求到 http://localhost:8000/broadcasting/auth 时返回状态码 403(禁止访问)。此请求是用于客服聊天,只有管理员需要进行身份验证。

3

如何仅为管理员而不是普通用户使用广播/身份验证,同时两者仍然可以互相聊天?

//BroadcastServiceProvider

public function boot()
{

    Broadcast::routes();

    require base_path('routes/channels.php');
}

// Channels.php

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

Broadcast::channel('chat', function ($user) {
return $user;  });

// MessageSent 事件

public function broadcastOn()
{
    return new PresenceChannel('chat');
}

我遇到了这个错误:POST http://localhost:8000/broadcasting/auth 403 (禁止访问),但是当我从Laravel Echo中删除(Echo.join('chat'))时,该错误就不会出现。
1个回答

1
你可以使用 Laravel 中的中间件实现此功能。
这是来自 Laravel 官网的引用:
“中间件为过滤进入应用程序的 HTTP 请求提供了一种方便的机制。例如,Laravel 包括一个中间件,用于验证应用程序的用户是否已经通过身份验证。如果用户未经过身份验证,则中间件将重定向用户到登录屏幕。但是,如果用户已经通过身份验证,则中间件将允许请求进一步进入应用程序。”
从这个 网站 完整阅读。

在阅读网站后,我能够找到类似于我的问题的东西,使用中间件。谢谢! - najdat Akkad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接