ArbPetr88
@ArbPetr88
Эникейщик

Secure Chat App с помощью Auth0 и Pusher (Javascript), не видно сообщений. Что не так?

Здравствуйте, я новичок. Решил воспроизвести приложение ссылками ниже

https://pusher.com/tutorials/secure-chat-javascript/
https://github.com/pmbanugo/Pusher-Auth0-ChatApp

Старался делать все по инструкции, в приложении сообщений не видно! Они не отображаются, окошко остается пустое! Хотя статистика показывается, что они отправляются

$(document).ready(function(){
    // Initiating our Auth0Lock
    let lock = new Auth0Lock(
        'Ge3WidhmgLPFJRGUm6wLshzBtdGz0lx2',
        'arbpetr88.eu.auth0.com',
        {
            auth: {
                //redirectUrl: 'http://localhost:5000',
                params: {
                    scope: 'openid profile email'
                }   
            },
            autoclose: true,
            closable: false,
            rememberLastLogin: true
        }
    );

    // Listening for the authenticated event
    lock.on("authenticated", function(authResult) {
        // Use the token in authResult to getUserInfo() and save it to localStorage
        lock.getUserInfo(authResult.accessToken, function(error, profile) {
            if (error) {
                // Handle error
                console.log(error);
                return;
            }
            
            localStorage.setItem('accessToken', authResult.accessToken);
            localStorage.setItem('profile', JSON.stringify(profile));
            localStorage.setItem('isAuthenticated', true);
            updateAuthenticationValues(profile, true);
            $("#username").html(profile.name);
        });
    });

    let profile = JSON.parse(localStorage.getItem('profile'));
    let isAuthenticated = localStorage.getItem('isAuthenticated');

    function updateAuthenticationValues(userProfile, authStatus) {
        profile = userProfile;
        isAuthenticated = authStatus;
    }

    $("#logout").click((e) => {
        e.preventDefault();
        logout();
    });

    function logout(){
        localStorage.clear();
        isAuthenticated = false;
        lock.logout({ 
            returnTo: "http://localhost:5000" 
        });
    }
    
    function onMessageAdded(data) {
        let template = $("#new-message").html();
        template = template.replace("{{body}}", data.message);
        template = template.replace("{{name}}", data.name);

        $(".chat").append(template);
    }

    if(!isAuthenticated && !window.location.hash){
        lock.show();
    }
    else{
        if(profile){
            $("#username").html(profile.name);
        }
        
        // Enable pusher logging - don't include this in production
        Pusher.logToConsole = true;

        var pusher = new Pusher('5466c84e9d1b439de62b', {
            cluster: 'eu',
            encrypted: false
        });

        var channel = pusher.subscribe('private-chat');
        channel.bind('message-added', onMessageAdded);

        $('#btn-chat').click(function(){
            const message = $("#message").val();
            $("#message").val("");
             //send message
            $.post( "http://localhost:5000/message", { message, name: profile.name } );
        });  
    }
});


var express = require('express');
var bodyParser = require('body-parser');
var Pusher = require('pusher');

var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

var pusher = new Pusher({ appId: '536205', key: '4ecf53a5213c1cc198fa', secret:  '5466c84e9d1b439de62b', cluster: 'eu' });

app.post('/pusher/auth', function(req, res) {
  var socketId = req.body.socket_id;
  var channel = req.body.channel_name;
  var auth = pusher.authenticate(socketId, channel);
  res.send(auth);
});

app.post('/message', function(req, res) {
  var message = req.body.message;
  var name = req.body.name;
  pusher.trigger( 'private-chat', 'message-added', { message, name });
  res.sendStatus(200);
});

app.get('/',function(req,res){      
     res.sendFile('/public/index.html', {root: __dirname });
});

app.use(express.static(__dirname + '/public'));

var port = process.env.PORT || 5000;
app.listen(port, function () {
  console.log(`app listening on port ${port}!`)
});


5b16702dc7b82011866794.jpeg5b1671555d56d953762866.jpeg5b1670afcadd7312674837.jpeg
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Levhav
Возьмусь за разработку проектов любой сложности.
предполагаю вот проблема Можно ли как-то использовать pusher.com в сегодняшней действительности? вчера жаловались на блокировку пушера
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы