diff --git a/server/lib/Room.js b/server/lib/Room.js index 87f45f1..53c1696 100644 --- a/server/lib/Room.js +++ b/server/lib/Room.js @@ -133,9 +133,33 @@ class Room extends EventEmitter this._lastN.push(peerName); } + this._signalingPeers.set(peerName, signalingPeer); + this._handleSignalingPeer(signalingPeer); } + authCallback(data) + { + logger.debug('authCallback()'); + + const { + peerName, + name, + picture + } = data; + + const signalingPeer = this._signalingPeers.get(peerName); + + if (signalingPeer) + { + signalingPeer.socket.emit('auth', + { + name : name, + picture : picture + }); + } + } + _handleMediaRoom() { logger.debug('_handleMediaRoom()'); diff --git a/server/server.js b/server/server.js index 8d4b31c..4b56dbf 100755 --- a/server/server.js +++ b/server/server.js @@ -70,26 +70,23 @@ dataporten.setupLogout(app, '/logout'); app.get( '/auth-callback', - dataporten.passport.authenticate('dataporten', { failureRedirect: '/login' }), - (req, res) => { const state = JSON.parse(base64.decode(req.query.state)); if (rooms.has(state.roomId)) { - const room = rooms.get(state.roomId)._protooRoom; - - if (room.hasPeer(state.peerName)) + const data = { - const peer = room.getPeer(state.peerName); + peerName : state.peerName, + name : req.user.data.displayName, + picture : req.user.data.photos[0] + }; - peer.send('auth', { - name : req.user.data.displayName, - picture : req.user.data.photos[0] - }); - } + const room = rooms.get(state.roomId); + + room.authCallback(data); } res.send('');