【问题标题】:How to use Pusher private channel authorization with Parse.com如何通过 Parse.com 使用 Pusher 私人频道授权
【发布时间】:2014-03-02 23:48:15
【问题描述】:

我在互联网上没有找到任何有用的信息,所以我想分享一下。

【问题讨论】:

    标签: javascript parse-platform pusher


    【解决方案1】:

    在客户端:

    var pusher = new Pusher('your-app-key', {authTransport: 'parse'});
    
    Pusher.authorizers.parse = function (socketId, callback) {
        var pusherData = { 
            socket_id: socketId, 
            channel_name: this.channel.name 
        };
        Parse.Cloud.run('authorizePusherChannel', pusherData, {
            success: function (result) {
                callback(false, JSON.parse(result));
            },
            error: function (error) {
                callback(true, error);
            }
        });
    };
    

    在解析云上:

    Parse.Cloud.define('authorizePusherChannel', function (request, response) {
        if (!request.user) { response.error('User should be autenticated.'); }
        var pusherAppKey = 'your-pusher-app-key';
        var pusherAppSecret = 'your-pusher-app-secret';
        var stringToSign = request.params.socket_id + ':' + request.params.channel_name;
        var authToken = pusherAppKey + ':' + crypto.createHmac('sha256', pusherAppSecret).update(stringToSign).    digest('hex');    
        response.success(JSON.stringify({auth:authToken}));
    });
    

    【讨论】:

    • 我认为这里缺少一个部分,它将授权者设置为使用parse 一个。
    • @leggetter 你是对的!将其添加到答案中。谢谢!
    • 这对我不起作用。调用端点(通过解析控制台调试确认)。响应看起来是一个有效的 auth keyed json ...但是在推送控制台中吐出一个错误:“订阅私人聊天所需的身份验证信息”
    【解决方案2】:
    Pusher.authorizers.parse = function (socketId, callback) {
        var pusherData = { 
            socket_id: socketId, 
            channel_name: this.channel.name 
        };
        Parse.Cloud.run('authorizePusherChannel', pusherData, {
            success: function (result) {
                callback(false, JSON.parse(result));
            },
            error: function (error) {
                callback(true, error);
    

    【讨论】:

      猜你喜欢
      • 2014-07-15
      • 2016-02-24
      • 2017-11-27
      • 2020-07-23
      • 2017-05-26
      • 2019-07-03
      • 2021-06-17
      • 2016-11-06
      • 2019-06-04
      相关资源
      最近更新 更多