최정민

FEAT : MYSQL DB와 연동하여 로그인

-
...@@ -169,20 +169,49 @@ ...@@ -169,20 +169,49 @@
169 "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" 169 "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
170 }, 170 },
171 "body-parser": { 171 "body-parser": {
172 - "version": "1.18.3", 172 + "version": "1.19.0",
173 - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", 173 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
174 - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", 174 + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
175 "requires": { 175 "requires": {
176 - "bytes": "3.0.0", 176 + "bytes": "3.1.0",
177 "content-type": "~1.0.4", 177 "content-type": "~1.0.4",
178 "debug": "2.6.9", 178 "debug": "2.6.9",
179 "depd": "~1.1.2", 179 "depd": "~1.1.2",
180 - "http-errors": "~1.6.3", 180 + "http-errors": "1.7.2",
181 - "iconv-lite": "0.4.23", 181 + "iconv-lite": "0.4.24",
182 "on-finished": "~2.3.0", 182 "on-finished": "~2.3.0",
183 - "qs": "6.5.2", 183 + "qs": "6.7.0",
184 - "raw-body": "2.3.3", 184 + "raw-body": "2.4.0",
185 - "type-is": "~1.6.16" 185 + "type-is": "~1.6.17"
186 + },
187 + "dependencies": {
188 + "http-errors": {
189 + "version": "1.7.2",
190 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
191 + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
192 + "requires": {
193 + "depd": "~1.1.2",
194 + "inherits": "2.0.3",
195 + "setprototypeof": "1.1.1",
196 + "statuses": ">= 1.5.0 < 2",
197 + "toidentifier": "1.0.0"
198 + }
199 + },
200 + "qs": {
201 + "version": "6.7.0",
202 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
203 + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
204 + },
205 + "setprototypeof": {
206 + "version": "1.1.1",
207 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
208 + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
209 + },
210 + "statuses": {
211 + "version": "1.5.0",
212 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
213 + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
214 + }
186 } 215 }
187 }, 216 },
188 "boxen": { 217 "boxen": {
...@@ -268,9 +297,9 @@ ...@@ -268,9 +297,9 @@
268 "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" 297 "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
269 }, 298 },
270 "bytes": { 299 "bytes": {
271 - "version": "3.0.0", 300 + "version": "3.1.0",
272 - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 301 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
273 - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" 302 + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
274 }, 303 },
275 "cacheable-request": { 304 "cacheable-request": {
276 "version": "6.1.0", 305 "version": "6.1.0",
...@@ -409,6 +438,11 @@ ...@@ -409,6 +438,11 @@
409 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 438 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
410 "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 439 "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
411 }, 440 },
441 + "core-util-is": {
442 + "version": "1.0.2",
443 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
444 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
445 + },
412 "crypto-random-string": { 446 "crypto-random-string": {
413 "version": "2.0.0", 447 "version": "2.0.0",
414 "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", 448 "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
...@@ -564,10 +598,51 @@ ...@@ -564,10 +598,51 @@
564 "vary": "~1.1.2" 598 "vary": "~1.1.2"
565 }, 599 },
566 "dependencies": { 600 "dependencies": {
601 + "body-parser": {
602 + "version": "1.18.3",
603 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
604 + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
605 + "requires": {
606 + "bytes": "3.0.0",
607 + "content-type": "~1.0.4",
608 + "debug": "2.6.9",
609 + "depd": "~1.1.2",
610 + "http-errors": "~1.6.3",
611 + "iconv-lite": "0.4.23",
612 + "on-finished": "~2.3.0",
613 + "qs": "6.5.2",
614 + "raw-body": "2.3.3",
615 + "type-is": "~1.6.16"
616 + }
617 + },
618 + "bytes": {
619 + "version": "3.0.0",
620 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
621 + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
622 + },
567 "cookie": { 623 "cookie": {
568 "version": "0.3.1", 624 "version": "0.3.1",
569 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", 625 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
570 "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" 626 "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
627 + },
628 + "iconv-lite": {
629 + "version": "0.4.23",
630 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
631 + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
632 + "requires": {
633 + "safer-buffer": ">= 2.1.2 < 3"
634 + }
635 + },
636 + "raw-body": {
637 + "version": "2.3.3",
638 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
639 + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
640 + "requires": {
641 + "bytes": "3.0.0",
642 + "http-errors": "1.6.3",
643 + "iconv-lite": "0.4.23",
644 + "unpipe": "1.0.0"
645 + }
571 } 646 }
572 } 647 }
573 }, 648 },
...@@ -817,9 +892,9 @@ ...@@ -817,9 +892,9 @@
817 } 892 }
818 }, 893 },
819 "iconv-lite": { 894 "iconv-lite": {
820 - "version": "0.4.23", 895 + "version": "0.4.24",
821 - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", 896 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
822 - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", 897 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
823 "requires": { 898 "requires": {
824 "safer-buffer": ">= 2.1.2 < 3" 899 "safer-buffer": ">= 2.1.2 < 3"
825 } 900 }
...@@ -932,6 +1007,11 @@ ...@@ -932,6 +1007,11 @@
932 "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", 1007 "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
933 "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" 1008 "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw=="
934 }, 1009 },
1010 + "isarray": {
1011 + "version": "1.0.0",
1012 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1013 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1014 + },
935 "jake": { 1015 "jake": {
936 "version": "10.8.2", 1016 "version": "10.8.2",
937 "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", 1017 "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz",
...@@ -1108,6 +1188,24 @@ ...@@ -1108,6 +1188,24 @@
1108 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1188 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1109 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1189 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1110 }, 1190 },
1191 + "mysql": {
1192 + "version": "2.18.1",
1193 + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz",
1194 + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==",
1195 + "requires": {
1196 + "bignumber.js": "9.0.0",
1197 + "readable-stream": "2.3.7",
1198 + "safe-buffer": "5.1.2",
1199 + "sqlstring": "2.3.1"
1200 + },
1201 + "dependencies": {
1202 + "bignumber.js": {
1203 + "version": "9.0.0",
1204 + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz",
1205 + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A=="
1206 + }
1207 + }
1208 + },
1111 "negotiator": { 1209 "negotiator": {
1112 "version": "0.6.2", 1210 "version": "0.6.2",
1113 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 1211 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
...@@ -1242,6 +1340,11 @@ ...@@ -1242,6 +1340,11 @@
1242 "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", 1340 "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
1243 "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" 1341 "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
1244 }, 1342 },
1343 + "process-nextick-args": {
1344 + "version": "2.0.1",
1345 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1346 + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
1347 + },
1245 "proxy-addr": { 1348 "proxy-addr": {
1246 "version": "2.0.6", 1349 "version": "2.0.6",
1247 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", 1350 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
...@@ -1289,14 +1392,38 @@ ...@@ -1289,14 +1392,38 @@
1289 "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 1392 "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
1290 }, 1393 },
1291 "raw-body": { 1394 "raw-body": {
1292 - "version": "2.3.3", 1395 + "version": "2.4.0",
1293 - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", 1396 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
1294 - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", 1397 + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
1295 "requires": { 1398 "requires": {
1296 - "bytes": "3.0.0", 1399 + "bytes": "3.1.0",
1297 - "http-errors": "1.6.3", 1400 + "http-errors": "1.7.2",
1298 - "iconv-lite": "0.4.23", 1401 + "iconv-lite": "0.4.24",
1299 "unpipe": "1.0.0" 1402 "unpipe": "1.0.0"
1403 + },
1404 + "dependencies": {
1405 + "http-errors": {
1406 + "version": "1.7.2",
1407 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
1408 + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
1409 + "requires": {
1410 + "depd": "~1.1.2",
1411 + "inherits": "2.0.3",
1412 + "setprototypeof": "1.1.1",
1413 + "statuses": ">= 1.5.0 < 2",
1414 + "toidentifier": "1.0.0"
1415 + }
1416 + },
1417 + "setprototypeof": {
1418 + "version": "1.1.1",
1419 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
1420 + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
1421 + },
1422 + "statuses": {
1423 + "version": "1.5.0",
1424 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1425 + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
1426 + }
1300 } 1427 }
1301 }, 1428 },
1302 "rc": { 1429 "rc": {
...@@ -1310,6 +1437,20 @@ ...@@ -1310,6 +1437,20 @@
1310 "strip-json-comments": "~2.0.1" 1437 "strip-json-comments": "~2.0.1"
1311 } 1438 }
1312 }, 1439 },
1440 + "readable-stream": {
1441 + "version": "2.3.7",
1442 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
1443 + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
1444 + "requires": {
1445 + "core-util-is": "~1.0.0",
1446 + "inherits": "~2.0.3",
1447 + "isarray": "~1.0.0",
1448 + "process-nextick-args": "~2.0.0",
1449 + "safe-buffer": "~5.1.1",
1450 + "string_decoder": "~1.1.1",
1451 + "util-deprecate": "~1.0.1"
1452 + }
1453 + },
1313 "readdirp": { 1454 "readdirp": {
1314 "version": "3.5.0", 1455 "version": "3.5.0",
1315 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", 1456 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
...@@ -1431,6 +1572,11 @@ ...@@ -1431,6 +1572,11 @@
1431 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 1572 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
1432 "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 1573 "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
1433 }, 1574 },
1575 + "sqlstring": {
1576 + "version": "2.3.1",
1577 + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
1578 + "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A="
1579 + },
1434 "statuses": { 1580 "statuses": {
1435 "version": "1.4.0", 1581 "version": "1.4.0",
1436 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", 1582 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
...@@ -1471,6 +1617,14 @@ ...@@ -1471,6 +1617,14 @@
1471 } 1617 }
1472 } 1618 }
1473 }, 1619 },
1620 + "string_decoder": {
1621 + "version": "1.1.1",
1622 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1623 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1624 + "requires": {
1625 + "safe-buffer": "~5.1.0"
1626 + }
1627 + },
1474 "strip-ansi": { 1628 "strip-ansi": {
1475 "version": "5.2.0", 1629 "version": "5.2.0",
1476 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1630 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
...@@ -1510,6 +1664,11 @@ ...@@ -1510,6 +1664,11 @@
1510 "is-number": "^7.0.0" 1664 "is-number": "^7.0.0"
1511 } 1665 }
1512 }, 1666 },
1667 + "toidentifier": {
1668 + "version": "1.0.0",
1669 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
1670 + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
1671 + },
1513 "touch": { 1672 "touch": {
1514 "version": "3.1.0", 1673 "version": "3.1.0",
1515 "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", 1674 "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
...@@ -1647,6 +1806,11 @@ ...@@ -1647,6 +1806,11 @@
1647 "prepend-http": "^2.0.0" 1806 "prepend-http": "^2.0.0"
1648 } 1807 }
1649 }, 1808 },
1809 + "util-deprecate": {
1810 + "version": "1.0.2",
1811 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1812 + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
1813 + },
1650 "utils-merge": { 1814 "utils-merge": {
1651 "version": "1.0.1", 1815 "version": "1.0.1",
1652 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1816 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
6 "start": "nodemon ./bin/www" 6 "start": "nodemon ./bin/www"
7 }, 7 },
8 "dependencies": { 8 "dependencies": {
9 + "body-parser": "^1.19.0",
9 "cookie-parser": "~1.4.4", 10 "cookie-parser": "~1.4.4",
10 "debug": "~2.6.9", 11 "debug": "~2.6.9",
11 "ejs": "^3.1.6", 12 "ejs": "^3.1.6",
...@@ -14,6 +15,7 @@ ...@@ -14,6 +15,7 @@
14 "google-auth-library": "^7.0.4", 15 "google-auth-library": "^7.0.4",
15 "http-errors": "~1.6.3", 16 "http-errors": "~1.6.3",
16 "morgan": "~1.9.1", 17 "morgan": "~1.9.1",
18 + "mysql": "^2.18.1",
17 "nodemon": "^2.0.7", 19 "nodemon": "^2.0.7",
18 "session-file-store": "^1.5.0" 20 "session-file-store": "^1.5.0"
19 } 21 }
......
1 var express = require("express"); 1 var express = require("express");
2 var router = express.Router(); 2 var router = express.Router();
3 +var bodyParser=require('body-parser');
3 var { OAuth2Client } = require("google-auth-library"); 4 var { OAuth2Client } = require("google-auth-library");
4 var CLIENT_ID = 5 var CLIENT_ID =
5 "94679084723-s5f0686p2porp9mkakrp1p89a48n24nj.apps.googleusercontent.com"; 6 "94679084723-s5f0686p2porp9mkakrp1p89a48n24nj.apps.googleusercontent.com";
6 var client = new OAuth2Client(CLIENT_ID); 7 var client = new OAuth2Client(CLIENT_ID);
8 +var mysql=require('mysql')
7 var session = require("express-session"); 9 var session = require("express-session");
8 var FileStore = require("session-file-store")(session); 10 var FileStore = require("session-file-store")(session);
11 +router.use(bodyParser.urlencoded({extended:false})); //url인코딩 x
12 +router.use(bodyParser.json()); //json방식으로 파
9 router.use( 13 router.use(
10 session({ 14 session({
11 secret: "209", // 암호화 15 secret: "209", // 암호화
...@@ -14,7 +18,13 @@ router.use( ...@@ -14,7 +18,13 @@ router.use(
14 store: new FileStore(), 18 store: new FileStore(),
15 }) 19 })
16 ); 20 );
17 - 21 +var connection = mysql.createConnection({
22 + host : 'localhost',
23 + user : 'root',
24 + password : 'g79465',
25 + database : 'caferecommend'
26 +});
27 +connection.connect();
18 /* GET home page. */ 28 /* GET home page. */
19 router.get("/", function (req, res, next) { 29 router.get("/", function (req, res, next) {
20 res.render("index", { 30 res.render("index", {
...@@ -44,16 +54,60 @@ router.post("/index", (req, res) => { ...@@ -44,16 +54,60 @@ router.post("/index", (req, res) => {
44 }); 54 });
45 55
46 router.get("/login", checkAuthenticated, (req, res) => { 56 router.get("/login", checkAuthenticated, (req, res) => {
47 - let user = req.user; 57 + var sql = 'SELECT * FROM USER WHERE EMAIL=?';
48 - req.session.user = user; 58 + var parameter=[req.session.user.email];
49 - res.render("login", { user: req.session.user }); 59 + connection.query(sql,parameter, function(err, row){
60 + if(err){
61 + console.log(err);
62 + }
63 + else {
64 + if (row.length > 0) {
65 + console.log("이미 가입이 되어있는 아이디")
66 + req.session.user.nickname = row[0].NICKNAME;
67 + req.session.user.age = row[0].AGE;
68 + req.session.user.gender = row[0].GENDER;
69 + return res.render('map', {user : req.session.user})
70 + }
71 + else{
72 + return res.render("login", { user: req.session.user, message:'none' });
73 + }
74 + }
75 + });
50 }); 76 });
51 77
52 router.post("/login", (req, res) => { 78 router.post("/login", (req, res) => {
53 console.log(req.body.nickname); 79 console.log(req.body.nickname);
54 console.log(req.body.age); 80 console.log(req.body.age);
55 console.log(req.body.gender); 81 console.log(req.body.gender);
56 - return res.render("login", { user: req.session.user }); 82 + var sql =' SELECT * FROM USER WHERE NICKNAME=?';
83 + var parameter=[req.body.nickname];
84 + connection.query(sql, parameter, function(err,row){
85 + if(err){
86 + console.log(err);
87 + }
88 + if(row.length>0){
89 + console.log('동일 닉네임있음');
90 +
91 + return res.render("login", {user : req.session.user, message: 'same nickname'});
92 + }
93 + else{
94 + req.session.user.nickname=req.body.nickname;
95 + req.session.user.age=req.body.age;
96 + req.session.user.gender=req.body.gender;
97 + var sql='INSERT INTO USER(EMAIL, NAME, NICKNAME, AGE, GENDER) VALUES(?,?,?,?,?)';
98 + var parameter=[req.session.user.email, req.session.user.name, req.session.user.nickname, req.session.user.age, req.session.user.gender];
99 + connection.query(sql, parameter, function(err, row){
100 + if(err){
101 + console.log(err);
102 + }
103 + else{
104 + console.log("새로운 user데이터 입력");
105 + }
106 + });
107 + return res.render("map", { user : req.session.user });
108 + }
109 + });
110 +
57 }); 111 });
58 module.exports = router; 112 module.exports = router;
59 113
...@@ -69,12 +123,11 @@ function checkAuthenticated(req, res, next) { ...@@ -69,12 +123,11 @@ function checkAuthenticated(req, res, next) {
69 const payload = ticket.getPayload(); 123 const payload = ticket.getPayload();
70 user.name = payload.name; 124 user.name = payload.name;
71 user.email = payload.email; 125 user.email = payload.email;
72 - user.picture = payload.picture;
73 - console.log(user.name);
74 } 126 }
75 verify() 127 verify()
76 .then(() => { 128 .then(() => {
77 - req.user = user; 129 + req.session.user.name = user.name;
130 + req.session.user.email=user.email;
78 next(); 131 next();
79 }) 132 })
80 .catch((err) => { 133 .catch((err) => {
...@@ -83,5 +136,12 @@ function checkAuthenticated(req, res, next) { ...@@ -83,5 +136,12 @@ function checkAuthenticated(req, res, next) {
83 } 136 }
84 137
85 router.get("/map", (req, res) => { 138 router.get("/map", (req, res) => {
139 + console.log(req.session.user);
86 res.render("map"); 140 res.render("map");
87 }); 141 });
142 +
143 +
144 +router.get('/logout',function(req,res){
145 + req.session.destroy(); //세션비우기
146 + res.redirect('/');
147 +});
...\ No newline at end of file ...\ No newline at end of file
......
1 +{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"__lastAccess":1621187236305}
...\ No newline at end of file ...\ No newline at end of file
1 -{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"__lastAccess":1620823546959,"user":{"name":"‍김대철[학생](소프트웨어융합대학 컴퓨터공학과)","email":"kdc9619@khu.ac.kr","picture":"https://lh3.googleusercontent.com/a/AATXAJyP14ipRboJZ8T5-oNS3sRp4CG8wKCEwVABQ5G_=s96-c"}}
...\ No newline at end of file ...\ No newline at end of file
1 -{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"__lastAccess":1620684562564,"user":{"name":"‍최정민[학생](소프트웨어융합대학 컴퓨터공학과)","email":"cjm2021401@khu.ac.kr","picture":"https://lh3.googleusercontent.com/a/AATXAJzFD3R6CaL2NpysVrfvdGqcQ83vh_wpbN_5hj-0=s96-c"}}
...\ No newline at end of file ...\ No newline at end of file
1 +{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"__lastAccess":1621186188104}
...\ No newline at end of file ...\ No newline at end of file
1 +{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"__lastAccess":1621191395860,"user":{"name":"‍최정민[학생](소프트웨어융합대학 컴퓨터공학과)","email":"cjm2021401@khu.ac.kr","nickname":"Mayf","age":"25","gender":"male"},"gender":"male"}
...\ No newline at end of file ...\ No newline at end of file
...@@ -22,8 +22,15 @@ ...@@ -22,8 +22,15 @@
22 22
23 <input type="submit" value="Submit"> 23 <input type="submit" value="Submit">
24 </form> 24 </form>
25 -<a href="/index" onclick="signOut();">Sign Out</a> 25 +<a href="/logout" onclick="signOut();">Sign Out</a>
26 +<%if (message=='same nickname'){%>
27 + <script type="text/javascript">
26 28
29 + alert("입력하신 NICKNAME은 사용하지 못합니다." +
30 + "다른 NICKNAME을 입력하여 주세요");
31 +
32 + </script>
33 +<%}%>
27 34
28 </body> 35 </body>
29 <script> 36 <script>
......