Remove jwt, not needed

auto_join_3.3
Håvar Aambø Fosstveit 2020-03-27 10:38:51 +01:00
parent d20f0c161f
commit 3043098f0c
3 changed files with 26 additions and 27 deletions

View File

@ -3,7 +3,6 @@ const axios = require('axios');
const Logger = require('./Logger'); const Logger = require('./Logger');
const Lobby = require('./Lobby'); const Lobby = require('./Lobby');
const { v4: uuidv4 } = require('uuid'); const { v4: uuidv4 } = require('uuid');
const jwt = require('jsonwebtoken');
const userRoles = require('../userRoles'); const userRoles = require('../userRoles');
const config = require('../config/config'); const config = require('../config/config');
@ -128,31 +127,15 @@ class Room extends EventEmitter
{ {
logger.info('handlePeer() [peer:"%s", roles:"%s", token:"%s"]', peer.id, peer.roles, token); logger.info('handlePeer() [peer:"%s", roles:"%s", token:"%s"]', peer.id, peer.roles, token);
let verifiedPeer = false; // This peer is returning, reconnect
const verifiedPeer = token && token === this._uuid;
if (token) // Should not happen
{
try
{
const decoded = jwt.verify(token, this._uuid);
if (decoded.id === peer.id)
verifiedPeer = true;
}
catch (err)
{
logger.warn('handlePeer() | invalid token');
}
}
// Allow reconnections, remove old peer
if (this._peers[peer.id]) if (this._peers[peer.id])
{ {
logger.warn( logger.warn(
'handleConnection() | there is already a peer with same peerId [peer:"%s"]', 'handleConnection() | there is already a peer with same peerId [peer:"%s"]',
peer.id); peer.id);
this._peers[peer.id].close();
} }
// Returning user // Returning user
@ -373,9 +356,7 @@ class Room extends EventEmitter
} }
else else
{ {
const token = jwt.sign({ id: peer.id }, this._uuid, { noTimestamp: true }); peer.socket.handshake.session.token = this._uuid;
peer.socket.handshake.session.token = token;
peer.socket.handshake.session.save(); peer.socket.handshake.session.save();

View File

@ -25,7 +25,6 @@
"express-socket.io-session": "^1.3.5", "express-socket.io-session": "^1.3.5",
"helmet": "^3.21.2", "helmet": "^3.21.2",
"ims-lti": "^3.0.2", "ims-lti": "^3.0.2",
"jsonwebtoken": "^8.5.1",
"mediasoup": "^3.5.5", "mediasoup": "^3.5.5",
"openid-client": "^3.7.3", "openid-client": "^3.7.3",
"passport": "^0.4.0", "passport": "^0.4.0",

View File

@ -464,11 +464,30 @@ async function runWebSocketServer()
queue.push(async () => queue.push(async () =>
{ {
const room = await getOrCreateRoom({ roomId });
const peer = new Peer({ id: peerId, roomId, socket });
const { token } = socket.handshake.session; const { token } = socket.handshake.session;
const room = await getOrCreateRoom({ roomId });
let peer = peers.get(peerId);
if (peer)
{
if (token)
{
peer.close();
peer = null;
}
else
{
socket.disconnect(true);
return;
}
}
peer = new Peer({ id: peerId, roomId, socket });
peers.set(peerId, peer); peers.set(peerId, peer);
peer.on('close', () => peers.delete(peerId)); peer.on('close', () => peers.delete(peerId));