Fix authorization logic
parent
6bdc29682b
commit
4f0140ea36
|
|
@ -1089,6 +1089,10 @@ export default class RoomClient
|
||||||
text : `Authenticated successfully: ${request.data}`
|
text : `Authenticated successfully: ${request.data}`
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
|
||||||
|
this.closeLoginWindow();
|
||||||
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 'raisehand-message':
|
case 'raisehand-message':
|
||||||
|
|
|
||||||
|
|
@ -439,6 +439,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"base-64": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz",
|
||||||
|
"integrity": "sha1-eAqZyE59YAJgNhURxId2E78k9rs="
|
||||||
|
},
|
||||||
"bcrypt-pbkdf": {
|
"bcrypt-pbkdf": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"base-64": "^0.1.0",
|
||||||
"colors": "^1.1.2",
|
"colors": "^1.1.2",
|
||||||
"debug": "^3.1.0",
|
"debug": "^3.1.0",
|
||||||
"express": "^4.16.3",
|
"express": "^4.16.3",
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,8 @@ const protooServer = require('protoo-server');
|
||||||
const Logger = require('./lib/Logger');
|
const Logger = require('./lib/Logger');
|
||||||
const Room = require('./lib/Room');
|
const Room = require('./lib/Room');
|
||||||
const Dataporten = require('passport-dataporten');
|
const Dataporten = require('passport-dataporten');
|
||||||
|
const utils = require('./util');
|
||||||
|
const base64 = require('base-64');
|
||||||
|
|
||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
console.log('- process.env.DEBUG:', process.env.DEBUG);
|
console.log('- process.env.DEBUG:', process.env.DEBUG);
|
||||||
|
|
@ -42,7 +44,18 @@ const dataporten = new Dataporten.Setup(config.oauth2);
|
||||||
app.use(dataporten.passport.initialize());
|
app.use(dataporten.passport.initialize());
|
||||||
app.use(dataporten.passport.session());
|
app.use(dataporten.passport.session());
|
||||||
|
|
||||||
dataporten.setupAuthenticate(app, '/login');
|
app.get('/login', (req, res, next) =>
|
||||||
|
{
|
||||||
|
dataporten.passport.authenticate('dataporten', {
|
||||||
|
state : base64.encode(JSON.stringify({
|
||||||
|
roomId : req.query.roomId,
|
||||||
|
peerName : req.query.peerName,
|
||||||
|
code : utils.random(10)
|
||||||
|
}))
|
||||||
|
|
||||||
|
})(req, res, next);
|
||||||
|
});
|
||||||
|
|
||||||
dataporten.setupLogout(app, '/logout');
|
dataporten.setupLogout(app, '/logout');
|
||||||
|
|
||||||
app.get(
|
app.get(
|
||||||
|
|
@ -52,28 +65,32 @@ app.get(
|
||||||
|
|
||||||
(req, res) =>
|
(req, res) =>
|
||||||
{
|
{
|
||||||
res.redirect(req.session.redirectToAfterLogin || '/');
|
const state = JSON.parse(base64.decode(req.query.state));
|
||||||
|
|
||||||
if (rooms.has(req.query.roomId))
|
if (rooms.has(state.roomId))
|
||||||
{
|
{
|
||||||
const room = rooms.get(req.query.roomId)._protooRoom;
|
const room = rooms.get(state.roomId)._protooRoom;
|
||||||
|
|
||||||
if (room.hasPeer(req.query.peerName))
|
if (room.hasPeer(state.peerName))
|
||||||
{
|
{
|
||||||
const peer = room.getPeer(req.query.peerName);
|
const peer = room.getPeer(state.peerName);
|
||||||
|
|
||||||
peer.send('auth', {
|
peer.send('auth', {
|
||||||
name : req.user.displayName,
|
name : req.user.data.displayName,
|
||||||
picture : req.user.photos[0]
|
picture : req.user.data.photos[0]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
res.send('');
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
// Serve all files in the public folder as static files.
|
// Serve all files in the public folder as static files.
|
||||||
app.use(express.static('public'));
|
app.use(express.static('public'));
|
||||||
|
|
||||||
|
app.use((req, res) => res.sendFile(`${__dirname}/public/index.html`));
|
||||||
|
|
||||||
const httpsServer = https.createServer(tls, app);
|
const httpsServer = https.createServer(tls, app);
|
||||||
|
|
||||||
httpsServer.listen(config.listeningPort, '0.0.0.0', () =>
|
httpsServer.listen(config.listeningPort, '0.0.0.0', () =>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue