Properly handle login/logout.
This commit is contained in:
+22
-4
@@ -1,4 +1,4 @@
|
||||
function httpHelper(data)
|
||||
exports.loginHelper = function(data)
|
||||
{
|
||||
const html = `<!DOCTYPE html>
|
||||
<html>
|
||||
@@ -10,7 +10,7 @@ function httpHelper(data)
|
||||
<script type='text/javascript'>
|
||||
let data = ${JSON.stringify(data)};
|
||||
|
||||
window.opener.CLIENT.receiveFromChildWindow(data);
|
||||
window.opener.CLIENT.receiveLoginChildWindow(data);
|
||||
|
||||
window.close();
|
||||
</script>
|
||||
@@ -18,6 +18,24 @@ function httpHelper(data)
|
||||
</html>`;
|
||||
|
||||
return html;
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = httpHelper;
|
||||
exports.logoutHelper = function()
|
||||
{
|
||||
const html = `<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>Multiparty Meeting</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type='text/javascript'>
|
||||
window.opener.CLIENT.receiveLogoutChildWindow();
|
||||
|
||||
window.close();
|
||||
</script>
|
||||
</body>
|
||||
</html>`;
|
||||
|
||||
return html;
|
||||
};
|
||||
+8
-5
@@ -6,7 +6,6 @@ const config = require('./config/config');
|
||||
const fs = require('fs');
|
||||
const http = require('http');
|
||||
const spdy = require('spdy');
|
||||
const { constants } = require('crypto');
|
||||
const express = require('express');
|
||||
const bodyParser = require('body-parser');
|
||||
const cookieParser = require('cookie-parser');
|
||||
@@ -18,7 +17,10 @@ const Room = require('./lib/Room');
|
||||
const Peer = require('./lib/Peer');
|
||||
const base64 = require('base-64');
|
||||
const helmet = require('helmet');
|
||||
const httpHelper = require('./httpHelper');
|
||||
const {
|
||||
loginHelper,
|
||||
logoutHelper
|
||||
} = require('./httpHelper');
|
||||
// auth
|
||||
const passport = require('passport');
|
||||
const redis = require('redis');
|
||||
@@ -88,7 +90,8 @@ const session = expressSession({
|
||||
store : new RedisStore({ client }),
|
||||
cookie : {
|
||||
secure : true,
|
||||
httpOnly : true
|
||||
httpOnly : true,
|
||||
maxAge : 60 * 60 * 1000 // Expire after 1 hour since last request from user
|
||||
}
|
||||
});
|
||||
|
||||
@@ -268,7 +271,7 @@ async function setupAuth(oidcIssuer)
|
||||
app.get('/auth/logout', (req, res) =>
|
||||
{
|
||||
req.logout();
|
||||
res.redirect('/');
|
||||
res.send(logoutHelper());
|
||||
});
|
||||
|
||||
// callback
|
||||
@@ -301,7 +304,7 @@ async function setupAuth(oidcIssuer)
|
||||
peer && (peer.displayName = displayName);
|
||||
peer && (peer.picture = picture);
|
||||
|
||||
res.send(httpHelper({
|
||||
res.send(loginHelper({
|
||||
displayName,
|
||||
picture
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user