Showing
3 changed files
with
62 additions
and
23 deletions
... | @@ -2,30 +2,32 @@ var express = require("express"); | ... | @@ -2,30 +2,32 @@ var express = require("express"); |
2 | var router = express.Router(); | 2 | var router = express.Router(); |
3 | var AWS = require("aws-sdk"); | 3 | var AWS = require("aws-sdk"); |
4 | var fs = require("fs"); | 4 | var fs = require("fs"); |
5 | -var atob = require('atob'); | 5 | +var atob = require("atob"); |
6 | AWS.config.loadFromPath("./config.json"); | 6 | AWS.config.loadFromPath("./config.json"); |
7 | var rekognition = new AWS.Rekognition(); | 7 | var rekognition = new AWS.Rekognition(); |
8 | 8 | ||
9 | const { exec } = require("child_process"); | 9 | const { exec } = require("child_process"); |
10 | 10 | ||
11 | router.post("/", function (req, res, next) { | 11 | router.post("/", function (req, res, next) { |
12 | - console.log(req.body) | 12 | + console.log(req.body); |
13 | if (req.body.landing == "true") { | 13 | if (req.body.landing == "true") { |
14 | - res.render('use', { method: req.body.type,collection:req.body.collection }) | 14 | + res.render("use", { |
15 | - } | 15 | + method: req.body.type, |
16 | - else { | 16 | + collection: req.body.collection, |
17 | - image = req.body.image | 17 | + }); |
18 | - console.log(req.body.collection) | 18 | + } else { |
19 | + image = req.body.image; | ||
20 | + console.log(req.body.collection); | ||
19 | // console.log(image) | 21 | // console.log(image) |
20 | // var img_arr = req.body.image.split(',').map(function(item) { | 22 | // var img_arr = req.body.image.split(',').map(function(item) { |
21 | // return parseInt(item, 10); | 23 | // return parseInt(item, 10); |
22 | // }); | 24 | // }); |
23 | // console.log(img_arr) | 25 | // console.log(img_arr) |
24 | // enc_data = Buffer.from(image.split("data:image/png;base64,")[1], 'base64').toString('ascii') | 26 | // enc_data = Buffer.from(image.split("data:image/png;base64,")[1], 'base64').toString('ascii') |
25 | - if(image[11]=='p') | 27 | + if (image[11] == "p") |
26 | - enc_data = atob(image.split("data:image/png;base64,")[1]) | 28 | + enc_data = atob(image.split("data:image/png;base64,")[1]); |
27 | - else if(image[11]=='j') | 29 | + else if (image[11] == "j") |
28 | - enc_data = atob(image.split("data:image/jpeg;base64,")[1]) | 30 | + enc_data = atob(image.split("data:image/jpeg;base64,")[1]); |
29 | var length = enc_data.length; | 31 | var length = enc_data.length; |
30 | imageBytes = new ArrayBuffer(length); | 32 | imageBytes = new ArrayBuffer(length); |
31 | var ua = new Uint8Array(imageBytes); | 33 | var ua = new Uint8Array(imageBytes); |
... | @@ -37,20 +39,24 @@ router.post("/", function (req, res, next) { | ... | @@ -37,20 +39,24 @@ router.post("/", function (req, res, next) { |
37 | CollectionId: req.body.collection, | 39 | CollectionId: req.body.collection, |
38 | FaceMatchThreshold: 95, | 40 | FaceMatchThreshold: 95, |
39 | Image: { | 41 | Image: { |
40 | - Bytes: imageBytes | 42 | + Bytes: imageBytes, |
41 | }, | 43 | }, |
42 | - MaxFaces: 5 | 44 | + MaxFaces: 5, |
43 | }; | 45 | }; |
44 | rekognition.searchFacesByImage(params, function (err, data) { | 46 | rekognition.searchFacesByImage(params, function (err, data) { |
45 | if (err) { | 47 | if (err) { |
46 | console.log(err, err.stack); | 48 | console.log(err, err.stack); |
47 | - } | 49 | + } else { |
48 | - else { | 50 | + if (data.FaceMatches.length > 0) { |
49 | - if (data.FaceMatches.length>0){ | 51 | + res.render("redirect", { |
50 | - res.render("redirect", {error:"Recognized!",collection: req.body.collection }); | 52 | + error: "Recognized!", |
51 | - } | 53 | + collection: req.body.collection, |
52 | - else{ | 54 | + }); |
53 | - // todo 잠금 페이지로 이동. | 55 | + } else { |
56 | + res.render("password", { | ||
57 | + collection: req.body.collection, | ||
58 | + type: req.body.type, | ||
59 | + }); | ||
54 | } | 60 | } |
55 | } | 61 | } |
56 | }); | 62 | }); |
... | @@ -58,7 +64,7 @@ router.post("/", function (req, res, next) { | ... | @@ -58,7 +64,7 @@ router.post("/", function (req, res, next) { |
58 | }); | 64 | }); |
59 | 65 | ||
60 | router.get("/", function (req, res, next) { | 66 | router.get("/", function (req, res, next) { |
61 | - res.render('use') | 67 | + res.render("use"); |
62 | }); | 68 | }); |
63 | 69 | ||
64 | module.exports = router; | 70 | module.exports = router; | ... | ... |
... | @@ -61,8 +61,8 @@ | ... | @@ -61,8 +61,8 @@ |
61 | <footer class="align-center"> | 61 | <footer class="align-center"> |
62 | <form action="/use" method="post"> | 62 | <form action="/use" method="post"> |
63 | <input type="hidden" name="landing" id="landing" value="true" /> | 63 | <input type="hidden" name="landing" id="landing" value="true" /> |
64 | - <label for="type">Input Password:</label> | 64 | + <label for="type">Password (4 characters minimum):</label> |
65 | - <input type='password' name='type' id='type'/> | 65 | + <input type='password' name='type' id='type' minlength="4" required/> |
66 | <input type='hidden' name="collection" id='collection' value="<%= collection %>" > | 66 | <input type='hidden' name="collection" id='collection' value="<%= collection %>" > |
67 | <!-- <select name="type" id="type" class="button alt"> | 67 | <!-- <select name="type" id="type" class="button alt"> |
68 | <option value="Desktop">바탕화면</option> | 68 | <option value="Desktop">바탕화면</option> | ... | ... |
screensaver/views/password.ejs
0 → 100644
1 | +<script type="text/javascript"> | ||
2 | + post_data = { | ||
3 | + "collection":'<%= collection %>' | ||
4 | + } | ||
5 | + function winOpen() { | ||
6 | + var type = '<%= type %>'; | ||
7 | + let sign = window.prompt("password"); | ||
8 | + | ||
9 | + if (sign == type){ | ||
10 | + redirectPost('/',post_data) | ||
11 | + } | ||
12 | + else{ | ||
13 | + winOpen(); | ||
14 | + } | ||
15 | + } | ||
16 | + | ||
17 | + function redirectPost(url, data) { | ||
18 | + var form = document.createElement('form'); | ||
19 | + document.body.appendChild(form); | ||
20 | + form.method = 'post'; | ||
21 | + form.action = url; | ||
22 | + for (var name in data) { | ||
23 | + var input = document.createElement('input'); | ||
24 | + input.type = 'hidden'; | ||
25 | + input.name = name; | ||
26 | + input.value = data[name]; | ||
27 | + form.appendChild(input); | ||
28 | + } | ||
29 | + form.submit(); | ||
30 | + } | ||
31 | + </script> | ||
32 | + | ||
33 | + <body onLoad="winOpen()"></body> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment