Javascript 推送者,不同身份的存在和隐私?

Javascript 推送者,不同身份的存在和隐私?,javascript,php,laravel,pusher,Javascript,Php,Laravel,Pusher,我想知道如何为私人频道和在线频道实施授权,因为文档说明这两个频道的授权不同。 我目前在Laravel的身份验证过程如下 public function auth(PusherManager $pusher, Request $request) { if(Auth::check()) { echo $pusher->presence_auth('presence-channel', $request->get('socket_id'), Auth::u

我想知道如何为私人频道和在线频道实施授权,因为文档说明这两个频道的授权不同。

我目前在Laravel的身份验证过程如下

public function auth(PusherManager $pusher, Request $request)
{
    if(Auth::check())
    {
        echo $pusher->presence_auth('presence-channel', $request->get('socket_id'), Auth::user()->id, Auth::user());
    }
}
我正在初始化通道,如下所示

var pusher = new Pusher('7c1df2e41d3c474d369d');
var presenceChannel = pusher.subscribe('presence-channel');
var notificationChannel = pusher.subscribe('private-notifications-' + me.id);
这适用于状态频道,但当涉及到私人通知频道时,我会遇到以下错误。

推送器:错误:{“类型”:“WebSocketError”,“错误”:{“类型”:“推送器错误”,“数据”:{“代码”:null,“消息”:“无效签名:应为52336.206126的HMAC SHA256十六进制摘要:私人通知:{“用户id\”:1,“用户信息”:“{“id\”:1,\“名称\:“米格尔·史蒂文斯\”,“电子邮件\:\”miguel@clouddesign.be\“,”创建时间\“:\”2015-08-04 20:45:41 \“更新地址为\“:\“2015-08-04 20:45:41\”},但获得C880AA8F9D1337E4972FDE05AE76148CD9A2A91E636D4714EFBAC2DF6D27F4B“}


有不同的函数来验证私有通道和状态通道,它们也采用不同的参数

  • socket\u auth($channel\u name,$socket\u id
    应用于专用频道:
  • presence\u auth($channel\u name、$socket\u id、$user\u id、$user\u data)
    应用于presence频道:

因此,您应该检查
$request->get('channel\u name')
并根据频道名称前缀
private-
presence-
使用适当的方法。这也让您有机会检查当前用户是否拥有请求频道的权限。

感谢您的清晰解释!Pusher网站上的PHP示例中并不清楚。