当前位置: 首页 > 知识库问答 >
问题:

Laravel/broadcasting/auth总是失败,出现403错误

锺英彦
2023-03-14

我最近深入研究了Laravel5.3的LaravelEcho和Pusher组合。我已经成功地建立了公共频道,并转到了私人频道。我在Laravel从/broadcasting/auth路径返回403时遇到问题,无论我如何尝试授权该操作(包括使用简单的return 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;
        });
    }
}

资源/资产/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);
    });

我可以在我的推进器调试控制台中看到事件和它的有效载荷,一旦它到达授权路线,它就会失败。

共有3个答案

贺跃
2023-03-14

我把插座配对了。虽然没有任何通过/broadcasting/auth路由的身份验证中间件,但io与redis之间存在403错误。只有在whatching laracasts课程之后,我才意识到仅仅通道授权是不够的,应该始终存在用户,无论您如何验证和获取用户,使用默认的laravel auth或某种令牌算法-jwt或其他任何东西。

柯波娃
2023-03-14

我通过创建通道路由来解决它。

在routes中创建授权频道-

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

请参见文档:https://laravel.com/docs/5.4/broadcasting#authorizing-channels

谢啦

东方志尚
2023-03-14

错误403/广播/使用Laravel版本进行身份验证

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

应用程序/供应商/BroadcastServiceProvider.php更改

Broadcast::routes()

具有

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

或者

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

这对我很有用,希望对你有帮助。

 类似资料:
  • 当我试图通过我的离子角网络应用程序(Chrome,Safari)登录时,如果用户还没有登录,则会显示keycloak登录表单。提交凭据后,成功调用/tokenendpoint并响应预期的JWT。 但是随后keycloak-angull-lib调用“http://localhost:8080/auth/realms/realm_name/account”来访问用户配置文件,它提供: > 我已经尝试了

  • 问题内容: 我尝试调用-method,但是它总是失败。我的变量始终是。我在这里查看了一些类似的帖子,但没有一个完全适合我的需求。这是我的代码: 这是我尝试解决的方法: 我尝试使用该方法 并且 但是没有任何效果。一直都是。我还尝试给它一个文字字符串作为路径,设置为,甚至更改了我想将其设置为777的目录权限,但注意了。永远是错误的。希望您能为您提供帮助。任何帮助都非常感谢。谢谢 问题答案: 这是一个问

  • 问题1-aws/aws sdk php 3.75的安装请求。0 - 问题2-erusev/parsedown 1.7.1的安装请求- 问题3-laravel/框架v5.5.43的安装请求- 问题4-league/csv 9.1的安装请求。4 - 问题5-nicolaslopezj/search chable 1.10.3的安装请求- 问题6-phpoffice/phpexcel 1.8的安装请求。

  • 我试图运行ionic build Android--release命令来构建apk,但是我得到了这个错误 构建失败 总时间:2.623秒错误:cmd:命令失败,退出代码为1错误输出:失败:生成失败,出现异常。 错误:配置root项目'Android'时出现问题。您尚未接受以下SDK组件的许可协议:[Android SDK Platform25]。在构建项目之前,您需要接受许可协议,并使用Andro

  • 当我建立我的Xamarin Android应用程序在发布模式,我得到这个错误: /库/框架/单声道。framework/External/xbuild/Xamarin/Android/Xamarin。Android常见的目标:错误:执行任务链接程序集时出错:错误XA2006:引用元数据项“系统”。沃德·沙马林。形式。条目::从“MyApp,Version=1.0”设置_FontSize(Syste

  • 我的控制台中出现以下错误。 失败:生成已完成,但有2次失败。 > 错误:任务“:React-Native-Video:CompileDebugJavaWithJavac”执行失败。 编译失败;有关详细信息,请参阅编译器错误输出。 尝试: > 错误:任务“:React-native-firebase:CompileDebugJavaWithJavac”执行失败。 编译失败;有关详细信息,请参阅编译器