当前位置:  开发笔记 > 编程语言 > 正文

Laravel/broadcast/auth总是因403错误而失败

如何解决《Laravel/broadcast/auth总是因403错误而失败》经验,为你挑选了1个好方法。

我最近钻研了Laravel 5.3的Laravel-Echo和Pusher组合.我已经成功建立了公共频道,然后转向私人频道.我在Laravel从/ broadcast/auth路由返回403时遇到了麻烦,无论我做什么尝试授权操作(包括使用简单的返回true语句).谁能告诉我我做错了什么?

应用/供应商/ 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路由就会失败.



1> Alex..:

错误403 / broadcasting / auth(Laravel版本> 5.3和Pusher),您需要使用以下命令在resources / assets / js / bootstrap.js中更改代码

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: 'your key',
    cluster: 'your cluster',
    encrypted: true,
    auth: {
        headers: {
            Authorization: 'Bearer ' + YourTokenLogin
        },
    },
});

并在app / Providers / BroadcastServiceProvider.php中更改

Broadcast::routes()

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

要么

Broadcast::routes(['middleware' => ['jwt.auth']]); //if you use JWT

它对我有用,希望对您有所帮助。


仅当使用API​​令牌时,这才有意义。
推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有