diff --git a/app/src/RoomClient.js b/app/src/RoomClient.js index 56f13d8..243ce57 100644 --- a/app/src/RoomClient.js +++ b/app/src/RoomClient.js @@ -305,7 +305,7 @@ export default class RoomClient login() { - const url = `/auth/login?id=${this._signalingSocket.io.engine.id}`; + const url = `/auth/login?id=${this._signalingSocket.io.engine.id}&roomId=${this._roomId}&peerId=${this._peerId}`; this._loginWindow = window.open(url, 'loginWindow'); } diff --git a/server/lib/Lobby.js b/server/lib/Lobby.js index 1d77700..62da0e5 100644 --- a/server/lib/Lobby.js +++ b/server/lib/Lobby.js @@ -34,32 +34,6 @@ class Lobby extends EventEmitter this._peers = {}; } - authCallback(data, roomLocked) - { - logger.debug('authCallback() | [data:"%o", roomLocked:"%s"]', data, roomLocked); - - const { - peerId, - displayName, - picture - } = data; - - const peer = this._peers[peerId]; - - if (peer) - { - this._notification(peer.socket, 'auth', { - displayName : displayName, - picture : picture - }); - - if (!roomLocked) - { - this.promotePeer(peerId); - } - } - } - peerList() { logger.info('peerList()'); diff --git a/server/lib/Room.js b/server/lib/Room.js index db10bb1..ef9d941 100644 --- a/server/lib/Room.js +++ b/server/lib/Room.js @@ -179,9 +179,9 @@ class Room extends EventEmitter logStatus() { logger.info( - 'logStatus() [room id:"%s", peers:%s]', + 'logStatus() [room id:"%s", peers:%o]', this._roomId, - this._peers.size + this._peers ); } @@ -241,28 +241,16 @@ class Room extends EventEmitter return this._locked; } - authCallback(data) + peerAuthenticated(peerid) { - logger.debug('authCallback()'); + logger.debug('peerAuthenticated() | [peerId:"%s"]', peerId); - const { - peerId, - displayName, - picture - } = data; - - const peer = this._peers[peerId]; - - if (peer) + if (!this._locked) { - this._notification(peer.socket, 'auth', { - displayName : displayName, - picture : picture - }); - } - else if (this._lobby.hasPeer(peerId)) - { - this._lobby.authCallback(data, this._locked); + if (!Boolean(this._peers[peerid])) + { + this._lobby.promotePeer(peerId); + } } } diff --git a/server/server.js b/server/server.js index 057b8b2..2af5bdd 100755 --- a/server/server.js +++ b/server/server.js @@ -215,8 +215,10 @@ async function setupAuth(oidcIssuer) { passport.authenticate('oidc', { state : base64.encode(JSON.stringify({ - id : req.query.id, - code : utils.random(10) + id : req.query.id, + roomId : req.query.roomId, + peerId : req.query.peerId, + code : utils.random(10) })) })(req, res, next); }); @@ -256,7 +258,9 @@ async function setupAuth(oidcIssuer) photo = '/static/media/buddy.403cb9f6.svg'; } - // const room = rooms.get(state.roomId); + const room = rooms.get(state.roomId); + + room.peerAuthenticated(state.peerId); io.sockets.socket(state.id).emit('notification', { @@ -315,7 +319,7 @@ async function runHttpsServer() } /** - * Create a protoo WebSocketServer to allow WebSocket connections from browsers. + * Create a WebSocketServer to allow WebSocket connections from browsers. */ async function runWebSocketServer() {