Laravel / broadcast / auth始终因403错误而失败

By simon at 2018-02-27 • 0人收藏 • 81人看过

我最近研究了Laravel 5.3的Laravel-Echo和Pusher组合。 我已经成功建立公共频道和莫保留给私人的。我是 在Laravel从/ broadcast / auth路由返回403时遇到问题, 不管我做什么尝试授权该行为(直至并包括使用) 一个简单的返回true语句)。任何人都可以告诉我我在做什么翁? App / Providers / BroadcastServiceProvider.php:

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Broadcast;

class BroadcastServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Broadcast::routes();

        /*
         * Authenticate the user's personal channel...
         */
        Broadcast::channel('App.User.*', function ($user, $userId) {
            return true;
        });
    }
}

resources/assets/js/booststrap.js:
 import Echo from "laravel-echo"

 window.Echo = new Echo({
     broadcaster: 'pusher',
     key: 'My-Key-Here'
 });

window.Echo.private('App.User.1')
    .notification((notification) => {
        console.log(notification.type);
    });
我可以在Pusher调试控制台中看到该事件,并且它是有效负载很简单 一旦遇到auth路由失败。

4 个回复 | 最后更新于 2018-02-27
2018-02-27   #1

对我来说有效的是使用Laravel Echo的方法* _ private _ * 包:<https://laravel.com/docs/5.3/notifications#听,换 通知>

Echo.private('App.User.1')
  .notification((notification) => {
  console.log(notification.type);
});

2018-02-27   #2
<p>我通过创建渠道路线来解决它。 在routes-> channels.php中创建您的授权频道
Broadcast::channel('chatroom', function ($user) {
    return $user;
});
见文档:<https://laravel.com/docs/5.4/broadcasting#authorizing- 频道> 谢谢

2018-02-27   #3

在我的情况下,问题是一个错误的用户ID:

Echo.private('user.'+CURRENT_USER_ID_HERE)

2018-02-27   #4

如果您不再登录,可能会发生这种情况。确保您确实是 登录到Laravel应用程序,并确定您当前的服务锡永尚未过期。 我重新登录并为我工作。

登录后方可回帖

Loading...