首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为专用通道正确设置Laravel-echo身份验证的方法

为专用通道正确设置Laravel-echo身份验证的方法
EN

Stack Overflow用户
提问于 2017-12-26 11:07:42
回答 1查看 1.9K关注 0票数 1

我尝试了很多,但仍然不能正确设置LaravelEcho。实际上我无法设置身份验证,step.The私有通道都没有身份验证。这是larave-echo CLI结果

Boostrap.js

代码语言:javascript
复制
/**
 * Echo exposes an expressive API for subscribing to channels and listening
 * for events that are broadcast by Laravel. Echo and event broadcasting
 * allows your team to easily build robust real-time web applications.
 */

import Echo from "laravel-echo"

// window.Pusher = require('pusher-js');
window.io = require('socket.io-client');

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: 'http://localhost:6001'
});

Layout.blade.php

代码语言:javascript
复制
Echo.private('App.User.'+id)
                .notification((notification) => {
                    console.log(notification);
  });

laravel-echo-server.json

代码语言:javascript
复制
{
    "authHost": "http://bigplan.com",
    "authEndpoint": "/broadcasting/auth",
    "clients": [
        {
            "appId": "*********",
            "key": "*************************"
        }
    ],
    "database": "redis",
    "databaseConfig": {
        "redis": {
            "port": "6379",
            "host": "localhost"
        },
        "sqlite": {
            "databasePath": "/database/laravel-echo-server.sqlite"
        }
    },
    "devMode": false,
    "host": "localhost",
    "port": "6001",
    "protocol": "http",
    "referrers": [],
    "sslCertPath": "",
    "sslKeyPath": "",
    "verifyAuthPath": true,
    "verifyAuthServer": false
}
EN

回答 1

Stack Overflow用户

发布于 2019-08-13 14:26:38

您可能缺少要进行身份验证的路由,默认情况下它位于routes/channel.php中。如果已通过身份验证,则广播回调应返回true。

下面是一个示例:

代码语言:javascript
复制
Broadcast::channel('notify.{employeeId}', function ($user, $employeeId) {

    $employee = $user->employee;

    if (!$employee){
        return false;
    }

    return $employee->id==$employeeId;

}); 

notify.{employeeId}是您在事件类中定义的私有通道名称/

这里的$employeeId是你从echo客户端发送的,它可以是任何东西,在我的例子中,它是雇员ID。

$user是当前通过身份验证的用户。

文档:https://laravel.com/docs/5.5/broadcasting#authorizing-channels

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47973536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档