From 423dc9403e031535fc6cc47df4efc47d2a85cb4d Mon Sep 17 00:00:00 2001 From: Neil Gershenfeld <gersh@cba.mit.edu> Date: Tue, 26 Feb 2019 16:36:41 -0500 Subject: [PATCH] add auth --- cast | 3 +++ screen.js | 12 +++++++++--- viewer.html | 29 ++++++++++++++++++++++++----- 3 files changed, 36 insertions(+), 8 deletions(-) create mode 100755 cast diff --git a/cast b/cast new file mode 100755 index 0000000..4e6a28e --- /dev/null +++ b/cast @@ -0,0 +1,3 @@ +#!/bin/bash +cd ~/git/screen +sudo node screen.js 80 10 10 1234 diff --git a/screen.js b/screen.js index d7cf7d3..208d999 100644 --- a/screen.js +++ b/screen.js @@ -18,13 +18,17 @@ // // command line // -if (process.argv.length != 5) { - console.log("node screen.js server_port server_update_rate_ms client_update_rate_ms") +if ((process.argv.length < 5) || (process.argv.length > 6)) { + console.log("node screen.js server_port server_update_rate_ms client_update_rate_ms [code]") process.exit() } var port = parseInt(process.argv[2]) var server_delay = parseFloat(process.argv[3]) var client_delay = parseFloat(process.argv[4]) +if (process.argv.length == 6) + var code = process.argv[5] +else + var code = "''" // // requires // @@ -56,7 +60,9 @@ http.createServer(function(request,response) { if (url == '/') { fs.readFile('viewer.html',function(err,data){ response.writeHead(200,{'Content-Type':'text/html'}); - response.end(data) + var str = data.toString() + str = str.replace('CODE',code) + response.end(str) }) } else if (url == '/img') { diff --git a/viewer.html b/viewer.html index f457f42..b8c8771 100644 --- a/viewer.html +++ b/viewer.html @@ -1,18 +1,37 @@ <html> <body> +<div id="page"> <img id="img" alt="waiting for screen transmission to start"><br> <a href="screen.js">screen.js</a> <a href="viewer.html">viewer.html</a> +</div> <script type="text/javascript"> // // viewer.html // screen.js content viewer // Neil Gershenfeld -// 2/9/17 +// 2/26/19 // var client_delay -initialize() -update() +var code = CODE +insecure_auth() +function insecure_auth() { + if (code == '') { + initialize() + update() + } + else { + var resp = prompt('screencast code?') + if (resp == code) { + initialize() + update() + } + else { + document.body.removeChild(document.getElementById('page')) + document.write('incorrect code') + } + } + } function initialize() { var req = new XMLHttpRequest() req.open('GET','/initvars',true); @@ -48,8 +67,8 @@ function update() { req.addEventListener('loadend',function(evt) { if (evt.loaded == 0) { req.abort() - document.getElementById("img").alt = 'screen transmission ended' - document.getElementById("img").src = '' + document.body.removeChild(document.getElementById('page')) + document.write('screen transmission ended') } else { var url = window.URL.createObjectURL(req.response) -- GitLab