Skip to content
Snippets Groups Projects
Commit dc9f2e64 authored by Sami Spets's avatar Sami Spets
Browse files

Removed Google Authentication

parent 0bd2f52f
No related branches found
No related tags found
No related merge requests found
Pipeline #17093 passed
...@@ -10,4 +10,4 @@ lab-designs/viewer ...@@ -10,4 +10,4 @@ lab-designs/viewer
.vscode .vscode
doc/ doc/
web-service/npm-debug.log web-service/npm-debug.log
web-service/server/npm-debug.log web-service/server/npm-debug.log
\ No newline at end of file
...@@ -6,7 +6,7 @@ let peer; ...@@ -6,7 +6,7 @@ let peer;
let player; let player;
/** /**
* Validates that the user is logged in * Validates that the user is logged in by sending the token
*/ */
checkIfLoggedIn = async () => { checkIfLoggedIn = async () => {
// const token = window.localStorage.getItem('token') // const token = window.localStorage.getItem('token')
...@@ -32,11 +32,6 @@ checkIfLoggedIn = async () => { ...@@ -32,11 +32,6 @@ checkIfLoggedIn = async () => {
// } // }
} }
//Redirects the user to google authentication
handleLogin = () => {
window.location.href="/google";
}
/** /**
* Returns a list of available streams * Returns a list of available streams
*/ */
...@@ -100,34 +95,6 @@ renderThumbnails = async () => { ...@@ -100,34 +95,6 @@ renderThumbnails = async () => {
} }
/**
* Renders button that will redirect to google login
*/
renderLogin = () => {
const containerDiv = document.getElementById('container');
containerDiv.innerHTML =
`<div id='Login'>
<h2>Welcome to Future Technology Lab</h2>
<h3>Please login!</h3>
<a className="button" onClick="handleLogin()">
<div>
<span class="svgIcon t-popup-svg">
<svg class="svgIcon-use" width="25" height="37" viewBox="0 0 25 25">
<g fill="none" fill-rule="evenodd">
<path d="M20.66 12.693c0-.603-.054-1.182-.155-1.738H12.5v3.287h4.575a3.91 3.91 0 0 1-1.697 2.566v2.133h2.747c1.608-1.48 2.535-3.65 2.535-6.24z" fill="#4285F4"/>
<path d="M12.5 21c2.295 0 4.22-.76 5.625-2.06l-2.747-2.132c-.76.51-1.734.81-2.878.81-2.214 0-4.088-1.494-4.756-3.503h-2.84v2.202A8.498 8.498 0 0 0 12.5 21z" fill="#34A853"/>
<path d="M7.744 14.115c-.17-.51-.267-1.055-.267-1.615s.097-1.105.267-1.615V8.683h-2.84A8.488 8.488 0 0 0 4 12.5c0 1.372.328 2.67.904 3.817l2.84-2.202z" fill="#FBBC05"/>
<path d="M12.5 7.38c1.248 0 2.368.43 3.25 1.272l2.437-2.438C16.715 4.842 14.79 4 12.5 4a8.497 8.497 0 0 0-7.596 4.683l2.84 2.202c.668-2.01 2.542-3.504 4.756-3.504z" fill="#EA4335"/>
</g>
</svg>
</span>
<span class="button-label">Sign in with Google</span>
</div>
</a>
</div>`
}
/** /**
* Method to create a single thumbnail * Method to create a single thumbnail
*/ */
...@@ -147,14 +114,12 @@ createPeer = () => { ...@@ -147,14 +114,12 @@ createPeer = () => {
} }
webSocketTest = () => { webSocketTest = () => {
console.log(current_data.uri)
peer.send("update_cfg", "ftl://utu.fi#reconstruction_default/0/renderer/cool_effect", "true") peer.send("update_cfg", "ftl://utu.fi#reconstruction_default/0/renderer/cool_effect", "true")
} }
connectToStream = () => { connectToStream = () => {
const element = document.getElementById('ftlab-stream-video'); const element = document.getElementById('ftlab-stream-video');
console.log(VideoConverter)
const converter = new VideoConverter.default(element, 20, 6); const converter = new VideoConverter.default(element, 20, 6);
peer.bind(current_data.uri, (latency, streampckg, pckg) => { peer.bind(current_data.uri, (latency, streampckg, pckg) => {
...@@ -208,7 +173,6 @@ loadConfigs = async (str) => { ...@@ -208,7 +173,6 @@ loadConfigs = async (str) => {
const response = await rawResp.json(); const response = await rawResp.json();
const content = JSON.parse(response); const content = JSON.parse(response);
container.innerHTML += `<p>${response}</p>`; container.innerHTML += `<p>${response}</p>`;
console.log(content)
} }
// current_data.configData = '{"peers": 1}'; // current_data.configData = '{"peers": 1}';
...@@ -227,5 +191,4 @@ saveConfigs = async () => { ...@@ -227,5 +191,4 @@ saveConfigs = async () => {
body: JSON.stringify({peerURI: uri, configURI, data: configData, saveToCPP: true}) body: JSON.stringify({peerURI: uri, configURI, data: configData, saveToCPP: true})
}); });
const content = await rawResp.json(); const content = await rawResp.json();
console.log(content)
} }
\ No newline at end of file
...@@ -106,11 +106,6 @@ ...@@ -106,11 +106,6 @@
"integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
"dev": true "dev": true
}, },
"base64url": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
"integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A=="
},
"bl": { "bl": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz", "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz",
...@@ -337,11 +332,6 @@ ...@@ -337,11 +332,6 @@
"ieee754": "^1.1.4" "ieee754": "^1.1.4"
} }
}, },
"buffer-equal-constant-time": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
"integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
},
"buffer-from": { "buffer-from": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
...@@ -602,14 +592,6 @@ ...@@ -602,14 +592,6 @@
"readable-stream": "^2.0.2" "readable-stream": "^2.0.2"
} }
}, },
"ecdsa-sig-formatter": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
"integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
"requires": {
"safe-buffer": "^5.0.1"
}
},
"ee-first": { "ee-first": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
...@@ -933,49 +915,6 @@ ...@@ -933,49 +915,6 @@
"integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
"dev": true "dev": true
}, },
"jsonwebtoken": {
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
"requires": {
"jws": "^3.2.2",
"lodash.includes": "^4.3.0",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
"lodash.isnumber": "^3.0.3",
"lodash.isplainobject": "^4.0.6",
"lodash.isstring": "^4.0.1",
"lodash.once": "^4.0.0",
"ms": "^2.1.1",
"semver": "^5.6.0"
},
"dependencies": {
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"jwa": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
"integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
"requires": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.11",
"safe-buffer": "^5.0.1"
}
},
"jws": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
"integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"requires": {
"jwa": "^1.4.1",
"safe-buffer": "^5.0.1"
}
},
"kareem": { "kareem": {
"version": "2.3.1", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz",
...@@ -991,47 +930,12 @@ ...@@ -991,47 +930,12 @@
"stream-splicer": "^2.0.0" "stream-splicer": "^2.0.0"
} }
}, },
"lodash.includes": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
"integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
},
"lodash.isboolean": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
"integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
},
"lodash.isinteger": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
"integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
},
"lodash.isnumber": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
"integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
},
"lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
"integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
},
"lodash.isstring": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
"integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
},
"lodash.memoize": { "lodash.memoize": {
"version": "3.0.4", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",
"integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=",
"dev": true "dev": true
}, },
"lodash.once": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
"integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
},
"md5.js": { "md5.js": {
"version": "1.3.5", "version": "1.3.5",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
...@@ -1241,11 +1145,6 @@ ...@@ -1241,11 +1145,6 @@
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
}, },
"oauth": {
"version": "0.9.15",
"resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
"integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE="
},
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
...@@ -1309,40 +1208,6 @@ ...@@ -1309,40 +1208,6 @@
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
}, },
"passport": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz",
"integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=",
"requires": {
"passport-strategy": "1.x.x",
"pause": "0.0.1"
}
},
"passport-google-oauth20": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz",
"integrity": "sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ==",
"requires": {
"passport-oauth2": "1.x.x"
}
},
"passport-oauth2": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.5.0.tgz",
"integrity": "sha512-kqBt6vR/5VlCK8iCx1/KpY42kQ+NEHZwsSyt4Y6STiNjU+wWICG1i8ucc1FapXDGO15C5O5VZz7+7vRzrDPXXQ==",
"requires": {
"base64url": "3.x.x",
"oauth": "0.9.x",
"passport-strategy": "1.x.x",
"uid2": "0.0.x",
"utils-merge": "1.x.x"
}
},
"passport-strategy": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
"integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ="
},
"path-browserify": { "path-browserify": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
...@@ -1372,11 +1237,6 @@ ...@@ -1372,11 +1237,6 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
}, },
"pause": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
"integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10="
},
"pbkdf2": { "pbkdf2": {
"version": "3.0.17", "version": "3.0.17",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
...@@ -1810,11 +1670,6 @@ ...@@ -1810,11 +1670,6 @@
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
"dev": true "dev": true
}, },
"uid2": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz",
"integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I="
},
"umd": { "umd": {
"version": "3.0.3", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz",
......
...@@ -18,11 +18,8 @@ ...@@ -18,11 +18,8 @@
"express": "^4.16.4", "express": "^4.16.4",
"express-ws": "^4.0.0", "express-ws": "^4.0.0",
"h264-converter": "^0.1.0", "h264-converter": "^0.1.0",
"jsonwebtoken": "^8.5.1",
"mongoose": "^5.7.3", "mongoose": "^5.7.3",
"msgpack5": "^4.2.1", "msgpack5": "^4.2.1",
"passport": "^0.4.0",
"passport-google-oauth20": "^2.0.0",
"url-parse": "^1.4.7", "url-parse": "^1.4.7",
"uuid": "^3.3.3" "uuid": "^3.3.3"
}, },
......
...@@ -2,10 +2,6 @@ const express = require('express'); ...@@ -2,10 +2,6 @@ const express = require('express');
const app = express(); const app = express();
const expressWs = require('express-ws')(app); const expressWs = require('express-ws')(app);
const Peer = require('./peer.js'); const Peer = require('./peer.js');
const jwt = require('jsonwebtoken');
const passport = require('passport');
const passportSetup = require('./passport/passport'); //Without this, the app doesn't know passports google strategy
const keys = require('./passport/keys')
const mongoose = require('mongoose') const mongoose = require('mongoose')
const config = require('./utils/config') const config = require('./utils/config')
const User = require('./models/users') const User = require('./models/users')
...@@ -14,19 +10,10 @@ const bodyParser = require('body-parser') ...@@ -14,19 +10,10 @@ const bodyParser = require('body-parser')
const Url = require('url-parse') const Url = require('url-parse')
// ---- INDEXES ---------------------------------------------------------------- // ---- INDEXES ----------------------------------------------------------------
app.use(passport.initialize());
app.use(express.static(__dirname + '/../../public')); app.use(express.static(__dirname + '/../../public'));
app.use(bodyParser.json()) app.use(bodyParser.json())
// //CONNECTS THE APP TO MONGODB
passport.serializeUser((user, done) => {
done(null, user);
})
passport.deserializeUser((userDataFromCookie, done) => {
done(null, userDataFromCookie);
})
// mongoose.connect(config.MONGODB_URI, { useNewUrlParser: true, useUnifiedTopology: true }) // mongoose.connect(config.MONGODB_URI, { useNewUrlParser: true, useUnifiedTopology: true })
// .then(() => { // .then(() => {
// console.log('Connected to MongoDB'); // console.log('Connected to MongoDB');
...@@ -161,27 +148,6 @@ app.get('/', (req, res) => { ...@@ -161,27 +148,6 @@ app.get('/', (req, res) => {
res.end(); res.end();
}); });
/**
* This is the route that actually validates the users JWT token.
*/
app.post('/auth/validation', async (req, res) => {
const token = req.headers.authorization.split(" ")
const decoded = jwt.verify(token[1], keys.jwt.secret)
console.log('DECODED', decoded)
try{
const data = await User.find({ googleID: decoded })
console.log('DATA', data)
if(data.length !== 0){
return res.status(200).json("success")
}else {
return res.status(403)
}
}catch(err){
console.log('ERROR ERROR')
console.log(err)
}
})
app.get('/streams', (req, res) => { app.get('/streams', (req, res) => {
res.json(Object.keys(uri_data)); res.json(Object.keys(uri_data));
...@@ -230,8 +196,8 @@ app.post('/stream/config', async (req, res) => { ...@@ -230,8 +196,8 @@ app.post('/stream/config', async (req, res) => {
console.log(e) console.log(e)
} }
} }// else{
// //Save to MongoDB
// const savedConfigs = new Configs({ // const savedConfigs = new Configs({
// settingsURI: configURI, // settingsURI: configURI,
// data // data
...@@ -244,26 +210,24 @@ app.post('/stream/config', async (req, res) => { ...@@ -244,26 +210,24 @@ app.post('/stream/config', async (req, res) => {
// console.log(err) // console.log(err)
// return res.status(500).json("Something's wrong I can feel it") // return res.status(500).json("Something's wrong I can feel it")
// } // }
// }
// } // }
}) })
app.get('/stream/config', async(req, res) => { app.get('/stream/config', async(req, res) => {
//example of uri ftlab.utu.fi/stream/config?uri=ftl://utu.fi#reconstruction_snap10/merge //example of uri ftlab.utu.fi/stream/config?uri=ftl://utu.fi#reconstruction_snap10/merge
const settings = req.query.settings; const settings = req.query.settings;
const uri = req.query.uri; const uri = req.query.uri;
const parsedURI = stringSplitter(uri) const parsedURI = stringSplitter(uri)
//Check if DB has data // //Checks if DB has data
// let dbData = await Configs.find({Settings: settings}); // let dbData = await Configs.find({Settings: settings});
// if(dbData[0].data){ // if(dbData[0].data){
// return res.status(200).json(dbData[0]); // return res.status(200).json(dbData[0]);
// }else{ // }else{
let peer = uri_data[parsedURI].peer let peer = uri_data[parsedURI].peer
if(peer){ if(peer){
console.log("get_cfg", settings)
peer.rpc("get_cfg", (response) => { peer.rpc("get_cfg", (response) => {
if(response){ if(response){
return res.status(200).json(response); return res.status(200).json(response);
...@@ -281,64 +245,6 @@ app.get('/stream', (req, res) => { ...@@ -281,64 +245,6 @@ app.get('/stream', (req, res) => {
}) })
/*
* Route for Google authentication API page
*/
app.get('/google', passport.authenticate('google', {
scope: ['profile']
}))
/**
* Google authentication API callback route.
* Sets the JWT to clients browser and redirects the user back to front page.
*/
app.get('/auth/google/redirect', passport.authenticate('google'), async (req, res) => {
console.log(req.user)
//Save the req.user.id into MongoDB
const user = new User({
googleID: req.user.id
})
try{
const listOfUsers = await User.find({});
console.log(listOfUsers);
//Checks if the userID is already in db
for(let i=0; i<listOfUsers.length; i++){
if(listOfUsers[i].googleID == req.user.id){
const token = jwt.sign(req.user.id, keys.jwt.secret);
const htmlWithEmbeddedJWT = `
<html>
<body><h3> You will be automatically redirected to next page.<h3><body>
<script>
window.localStorage.setItem('token', 'bearer ${token}');
window.location.href = '/';
</script>
<html>
`;
return res.send(htmlWithEmbeddedJWT)
}
}
await user.save()
const token = jwt.sign(req.user.id, keys.jwt.secret);
const htmlWithEmbeddedJWT = `
<html>
<body><h3> You will be automatically redirected to next page.<h3><body>
<script>
window.localStorage.setItem('token', 'bearer ${token}');
window.location.href = '/';
</script>
<html>
`;
return res.send(htmlWithEmbeddedJWT)
}catch(err){
console.log(err)
return res.status(500).json('Login failed')
}
})
function checkStreams(peer) { function checkStreams(peer) {
if (!peer.master) { if (!peer.master) {
peer.rpc("list_streams", (streams) => { peer.rpc("list_streams", (streams) => {
......
module.exports = {
//This needs to be changed
//Currently linked to Sami's google account
google: {
clientID: '', //Ends in apps.googleusercontent.com
clientSecret: ''
},
jwt: {
secret: ''
}
}
\ No newline at end of file
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20');
const keys = require('./keys')
passport.use(
new GoogleStrategy({
clientID: keys.google.clientID,
clientSecret: keys.google.clientSecret,
callbackURL: '/auth/google/redirect',
passReqToCallback: true
}, (req, accessToken, refreshToken, profile, done) => {
// console.log(profile)
return done(null, profile)
})
)
\ No newline at end of file
const msgpack = require('msgpack5')() const msgpack = require('msgpack5')()
, encode = msgpack.encode , encode = msgpack.encode
, decode = msgpack.decode; , decode = msgpack.decode;
const uuidv4 = require('uuid/v4') const uuidv4 = require('uuid') //Deprecated method, should use require('uuid/v4')
const uuidParser = require('./utils/uuidParser') const uuidParser = require('./utils/uuidParser')
const kConnecting = 1; const kConnecting = 1;
......
module.exports = { module.exports = {
/** /**
* Currently linked to Sami's mongo-atlas account * The URI for MongoDB needs to be added here
* Lookup the models for user and generic from the models folder *
* * When installing MongoDB lookup the models for
* user and generic from the models folder
*/ */
MONGODB_URI: '' //Add the mongo URI here MONGODB_URI: '' //Add the mongo URI here
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment