Toggle navigation
Toggle navigation
This project
Loading...
Sign in
김민규
/
rest_stop_list
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Mingyu
2022-05-13 18:27:10 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
6de54decdc0f86000de25b0676705ce61bb9c9f3
6de54dec
1 parent
2f3cd096
MySQL Login
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
310 additions
and
41 deletions
app/app.js
app/database/Connection.js
app/routes/login.js
app/routes/sign_up.js → app/routes/signup.js
app/views/contact.html
app/views/faq.html
app/views/index.html
app/public/login.html → app/views/login.html
app/views/lpg.html
app/views/menu.html
app/public/signup.html → app/views/signup.html
app/views/weather.html
node_modules/.package-lock.json
package-lock.json
package.json
app/app.js
View file @
6de54de
...
...
@@ -7,13 +7,15 @@ var bodyParser = require('body-parser')
var
expressErrorHandler
=
require
(
'express-error-handler'
);
var
indexRouter
=
require
(
'./routes/index'
)
var
loginRouter
=
require
(
'./routes/login'
)
var
sign
_upRouter
=
require
(
'./routes/sign_
up'
)
var
sign
upRouter
=
require
(
'./routes/sign
up'
)
var
lpgRouter
=
require
(
'./routes/lpg'
)
var
weatherRouter
=
require
(
'./routes/weather'
)
var
menuRouter
=
require
(
'./routes/menu'
)
var
app
=
express
();
var
router
=
express
.
Router
();
var
cookieParser
=
require
(
'cookie-parser'
)
var
ExpressSession
=
require
(
'express-session'
)
// get port
var
port
=
process
.
env
.
PORT
||
3000
;
...
...
@@ -40,10 +42,17 @@ app.use('/menu',menuRouter)
app
.
use
(
'/login'
,
loginRouter
);
// login page route
app
.
use
(
'/weather'
,
weatherRouter
)
app
.
use
(
'/lpg'
,
lpgRouter
)
app
.
use
(
'/signup'
,
sign
_
upRouter
);
// sign up page route
app
.
use
(
'/signup'
,
signupRouter
);
// sign up page route
app
.
use
(
'/'
,
indexRouter
);
// main page route
//Session 처리
app
.
use
(
cookieParser
());
app
.
use
(
ExpressSession
({
secret
:
'key'
,
resave
:
true
,
saveUninitialized
:
true
}));
//모든 router 처리가 끝난 후 404 오류 페이지 처리
var
errorHandler
=
expressErrorHandler
({
...
...
app/database/Connection.js
View file @
6de54de
...
...
@@ -40,7 +40,39 @@ var adduser = function(name, id, password, callback) {
})
}
var
authUser
=
function
(
id
,
password
,
callback
)
{
console
.
log
(
'authUser 호출'
);
pool
.
getConnection
(
function
(
err
,
conn
)
{
if
(
err
){
if
(
conn
){
conn
.
release
();
}
callback
(
err
,
null
);
return
;
}
var
colums
=
[
'name'
,
'id'
];
var
tablename
=
'users'
;
var
exec
=
conn
.
query
(
"select ?? from ?? where id = ? and password = ?"
,
[
colums
,
tablename
,
id
,
password
],
function
(
err
,
rows
)
{
conn
.
release
();
if
(
rows
.
length
>
0
){
console
.
log
(
'Id [%s], password [$s] 일치하는 사용자 찾음'
,
id
,
password
);
callback
(
null
,
rows
);
}
else
{
console
.
log
(
'일치하는 사용자 없음'
);
callback
(
null
,
null
);
}
}
);
})
}
module
.
exports
.
pool
=
pool
;
//module.exports.login = login
;
module
.
exports
.
authUser
=
authUser
;
module
.
exports
.
adduser
=
adduser
;
//module.exports.listuser = listuser;
...
...
app/routes/login.js
View file @
6de54de
var
express
=
require
(
'express'
)
var
User
=
require
(
'../database/User
'
)
var
Conn
=
require
(
'../database/Connection
'
)
var
router
=
express
.
Router
()
//라우팅 함수 등록
...
...
@@ -8,30 +8,52 @@ router.get('/',function(req,res){
res
.
render
(
'login.html'
)
});
router
.
post
(
'/process'
,
async
(
req
,
res
)
=>
{
console
.
log
(
'/
process/login
처리함'
);
router
.
post
(
'/process'
,
function
(
req
,
res
)
{
console
.
log
(
'/
login/process
처리함'
);
var
paramId
=
req
.
body
.
id
||
req
.
query
.
id
;
var
paramPassword
=
req
.
body
.
password
||
req
.
query
.
password
;
//GET, POST 모두 고려해서 둘 다 검사
const
results
=
await
User
.
login
(
paramId
,
paramPassword
);
if
(
Conn
.
pool
){
Conn
.
authUser
(
paramId
,
paramPassword
,
function
(
err
,
rows
)
{
if
(
err
){
console
.
error
(
err
.
stack
);
res
.
writeHead
(
'200'
,
{
'Content-Type'
:
'text/html;charset=utf8'
});
res
.
write
(
'<h1>로그인 중 오류</h1>'
);
res
.
write
(
'<div><p>Param id : '
+
paramId
+
'</p></div>'
);
res
.
write
(
'<div><p>Param password : '
+
paramPassword
+
'</p></div>'
);
res
.
write
(
"<br><br><a href ='/login'>로그인 페이지로 돌아가기</a>"
);
res
.
end
();
return
;
}
if
(
rows
){
console
.
dir
(
rows
);
if
(
results
){
res
.
writeHead
(
'200'
,
{
'Content-Type'
:
'text/html;charset=utf8'
});
res
.
write
(
'<h1>로그인 성공</h1>'
);
res
.
write
(
'<div><p>Param name : '
+
rows
[
0
].
name
+
'</p></div>'
);
res
.
write
(
'<div><p>Param id : '
+
paramId
+
'</p></div>'
);
res
.
write
(
"<br><br><a href ='/login'>로그인 페이지로 돌아가기</a>"
);
res
.
end
();
}
else
{
res
.
writeHead
(
'200'
,
{
'Content-Type'
:
'text/html;charset=utf8'
});
res
.
write
(
'<h1>로그인 실패.</h1>'
);
res
.
write
(
'<div><p>Param id : '
+
paramId
+
'</p></div>'
);
res
.
write
(
"<br><br><a href ='/login'>로그인 페이지로 돌아가기</a>"
);
res
.
end
();
}
})
}
else
{
res
.
writeHead
(
'200'
,
{
'Content-Type'
:
'text/html;charset=utf8'
});
res
.
write
(
'<h1>로그인 성공</h1>'
);
res
.
write
(
'<div><p>Param id : '
+
paramId
+
'</p></div>'
);
res
.
write
(
'<div><p>Param password : '
+
paramPassword
+
'</p></div>'
);
res
.
write
(
"<br><br><a href ='/login.html'>로그인 페이지로 돌아가기</a>"
);
res
.
end
();
}
else
{
res
.
writeHead
(
'200'
,
{
'Content-Type'
:
'text/html;charset=utf8'
});
res
.
write
(
'<h1>정보가 잘못되었습니다.</h1>'
);
res
.
write
(
'<div><p>Param id : '
+
paramId
+
'</p></div>'
);
res
.
write
(
'<div><p>Param password : '
+
paramPassword
+
'</p></div>'
);
res
.
write
(
"<br><br><a href ='/login.html'>로그인 페이지로 돌아가기</a>"
);
res
.
write
(
'<h1>데이터베이스 연결 실패</h1>'
);
res
.
end
();
}
});
module
.
exports
=
router
\ No newline at end of file
...
...
app/routes/sign
_
up.js
→
app/routes/signup.js
View file @
6de54de
...
...
@@ -3,7 +3,7 @@ var Conn = require('../database/Connection')
var
router
=
express
.
Router
()
router
.
get
(
'/'
,
function
(
req
,
res
){
res
.
render
(
'
views/
signup.html'
)
res
.
render
(
'signup.html'
)
});
...
...
@@ -20,11 +20,11 @@ router.post('/process', function(req, res) {
if
(
err
){
console
.
error
(
err
.
stack
);
res
.
writeHead
(
'200'
,
{
'Content-Type'
:
'text/html;charset=utf8'
});
res
.
write
(
'<h1>
추가 중 오류
</h1>'
);
res
.
write
(
'<h1>
ID가 중복되었습니다. 다른 ID를 사용해주세요.
</h1>'
);
res
.
write
(
'<div><p>Param name : '
+
paramName
+
'</p></div>'
);
res
.
write
(
'<div><p>Param id : '
+
paramId
+
'</p></div>'
);
res
.
write
(
'<div><p>Param password : '
+
paramPassword
+
'</p></div>'
);
res
.
write
(
"<br><br><a href ='/login
.html
'>로그인 페이지로 돌아가기</a>"
);
res
.
write
(
"<br><br><a href ='/login'>로그인 페이지로 돌아가기</a>"
);
res
.
end
();
return
;
...
...
@@ -37,14 +37,14 @@ router.post('/process', function(req, res) {
res
.
write
(
'<div><p>Param name : '
+
paramName
+
'</p></div>'
);
res
.
write
(
'<div><p>Param id : '
+
paramId
+
'</p></div>'
);
res
.
write
(
'<div><p>Param password : '
+
paramPassword
+
'</p></div>'
);
res
.
write
(
"<br><br><a href ='/login
.html
'>로그인 페이지로 돌아가기</a>"
);
res
.
write
(
"<br><br><a href ='/login'>로그인 페이지로 돌아가기</a>"
);
res
.
end
();
}
else
{
res
.
writeHead
(
'200'
,
{
'Content-Type'
:
'text/html;charset=utf8'
});
res
.
write
(
'<h1>회원가입 실패.</h1>'
);
res
.
write
(
'<div><p>Param id : '
+
paramId
+
'</p></div>'
);
res
.
write
(
'<div><p>Param password : '
+
paramPassword
+
'</p></div>'
);
res
.
write
(
"<br><br><a href ='/login
.html
'>로그인 페이지로 돌아가기</a>"
);
res
.
write
(
"<br><br><a href ='/login'>로그인 페이지로 돌아가기</a>"
);
res
.
end
();
}
...
...
app/views/contact.html
View file @
6de54de
...
...
@@ -37,8 +37,8 @@
<li
class=
"nav-item dropdown"
>
<a
class=
"nav-link dropdown-toggle"
id=
"navbarDropdownLogin"
href=
"#"
role=
"button"
data-bs-toggle=
"dropdown"
aria-expanded=
"false"
>
Login
</a>
<ul
class=
"dropdown-menu dropdown-menu-end"
aria-labelledby=
"navbarDropdownLogin"
>
<li><a
class=
"dropdown-item"
href=
"
login.html
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
signup.html
"
>
Sign-up
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/login
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/signup
"
>
Sign-up
</a></li>
</ul>
</li>
</ul>
...
...
app/views/faq.html
View file @
6de54de
...
...
@@ -37,8 +37,8 @@
<li
class=
"nav-item dropdown"
>
<a
class=
"nav-link dropdown-toggle"
id=
"navbarDropdownLogin"
href=
"#"
role=
"button"
data-bs-toggle=
"dropdown"
aria-expanded=
"false"
>
Login
</a>
<ul
class=
"dropdown-menu dropdown-menu-end"
aria-labelledby=
"navbarDropdownLogin"
>
<li><a
class=
"dropdown-item"
href=
"
login.html
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
signup.html
"
>
Sign-up
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/login
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/signup
"
>
Sign-up
</a></li>
</ul>
</li>
</ul>
...
...
app/views/index.html
View file @
6de54de
...
...
@@ -37,8 +37,8 @@
<li
class=
"nav-item dropdown"
>
<a
class=
"nav-link dropdown-toggle"
id=
"navbarDropdownLogin"
href=
"#"
role=
"button"
data-bs-toggle=
"dropdown"
aria-expanded=
"false"
>
Login
</a>
<ul
class=
"dropdown-menu dropdown-menu-end"
aria-labelledby=
"navbarDropdownLogin"
>
<li><a
class=
"dropdown-item"
href=
"
login.html
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
signup.html
"
>
Sign-up
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/login
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/signup
"
>
Sign-up
</a></li>
</ul>
</li>
</ul>
...
...
app/
public
/login.html
→
app/
views
/login.html
View file @
6de54de
...
...
@@ -44,8 +44,8 @@
<a
class=
"nav-link dropdown-toggle"
id=
"navbarDropdownLogin"
href=
"#"
role=
"button"
data-bs-toggle=
"dropdown"
aria-expanded=
"false"
>
Login
</a>
<ul
class=
"dropdown-menu dropdown-menu-end"
aria-labelledby=
"navbarDropdownLogin"
>
<li><a
class=
"dropdown-item"
href=
"
login.html
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
signup.html
"
>
Sign-up
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/login
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/signup
"
>
Sign-up
</a></li>
</ul>
</li>
</ul>
...
...
app/views/lpg.html
View file @
6de54de
...
...
@@ -37,8 +37,8 @@
<li
class=
"nav-item dropdown"
>
<a
class=
"nav-link dropdown-toggle"
id=
"navbarDropdownLogin"
href=
"#"
role=
"button"
data-bs-toggle=
"dropdown"
aria-expanded=
"false"
>
Login
</a>
<ul
class=
"dropdown-menu dropdown-menu-end"
aria-labelledby=
"navbarDropdownLogin"
>
<li><a
class=
"dropdown-item"
href=
"
login.html
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
signup.html
"
>
Sign-up
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/login
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/signup
"
>
Sign-up
</a></li>
</ul>
</li>
</ul>
...
...
app/views/menu.html
View file @
6de54de
...
...
@@ -37,8 +37,8 @@
<li
class=
"nav-item dropdown"
>
<a
class=
"nav-link dropdown-toggle"
id=
"navbarDropdownLogin"
href=
"#"
role=
"button"
data-bs-toggle=
"dropdown"
aria-expanded=
"false"
>
Login
</a>
<ul
class=
"dropdown-menu dropdown-menu-end"
aria-labelledby=
"navbarDropdownLogin"
>
<li><a
class=
"dropdown-item"
href=
"
login.html
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
signup.html
"
>
Sign-up
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/login
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/signup
"
>
Sign-up
</a></li>
</ul>
</li>
</ul>
...
...
app/
public
/signup.html
→
app/
views
/signup.html
View file @
6de54de
...
...
@@ -44,8 +44,8 @@
<a
class=
"nav-link dropdown-toggle"
id=
"navbarDropdownLogin"
href=
"#"
role=
"button"
data-bs-toggle=
"dropdown"
aria-expanded=
"false"
>
Login
</a>
<ul
class=
"dropdown-menu dropdown-menu-end"
aria-labelledby=
"navbarDropdownLogin"
>
<li><a
class=
"dropdown-item"
href=
"
login.html
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
signup.html
"
>
Sign-up
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/login
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/signup
"
>
Sign-up
</a></li>
</ul>
</li>
</ul>
...
...
@@ -58,7 +58,7 @@
<div
class=
"row justify-content-center"
>
<div
class=
"col-lg-8 col-xxl-6"
>
<div
class=
"text-center my-5"
>
<h1>
로그인
</h1>
<h1>
회원가입
</h1>
<br>
<form
method=
"post"
action=
"/signup/process"
>
<table>
...
...
app/views/weather.html
View file @
6de54de
...
...
@@ -37,8 +37,8 @@
<li
class=
"nav-item dropdown"
>
<a
class=
"nav-link dropdown-toggle"
id=
"navbarDropdownLogin"
href=
"#"
role=
"button"
data-bs-toggle=
"dropdown"
aria-expanded=
"false"
>
Login
</a>
<ul
class=
"dropdown-menu dropdown-menu-end"
aria-labelledby=
"navbarDropdownLogin"
>
<li><a
class=
"dropdown-item"
href=
"
login.html
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
signup.html
"
>
Sign-up
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/login
"
>
Login
</a></li>
<li><a
class=
"dropdown-item"
href=
"
/signup
"
>
Sign-up
</a></li>
</ul>
</li>
</ul>
...
...
node_modules/.package-lock.json
View file @
6de54de
...
...
@@ -190,6 +190,26 @@
"node"
:
">= 0.6"
}
},
"node_modules/cookie-parser"
:
{
"version"
:
"1.4.6"
,
"resolved"
:
"https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz"
,
"integrity"
:
"sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA=="
,
"dependencies"
:
{
"cookie"
:
"0.4.1"
,
"cookie-signature"
:
"1.0.6"
},
"engines"
:
{
"node"
:
">= 0.8.0"
}
},
"node_modules/cookie-parser/node_modules/cookie"
:
{
"version"
:
"0.4.1"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz"
,
"integrity"
:
"sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/cookie-signature"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
,
...
...
@@ -314,6 +334,32 @@
"mout"
:
"0.12.0"
}
},
"node_modules/express-session"
:
{
"version"
:
"1.17.3"
,
"resolved"
:
"https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz"
,
"integrity"
:
"sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw=="
,
"dependencies"
:
{
"cookie"
:
"0.4.2"
,
"cookie-signature"
:
"1.0.6"
,
"debug"
:
"2.6.9"
,
"depd"
:
"~2.0.0"
,
"on-headers"
:
"~1.0.2"
,
"parseurl"
:
"~1.3.3"
,
"safe-buffer"
:
"5.2.1"
,
"uid-safe"
:
"~2.1.5"
},
"engines"
:
{
"node"
:
">= 0.8.0"
}
},
"node_modules/express-session/node_modules/cookie"
:
{
"version"
:
"0.4.2"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz"
,
"integrity"
:
"sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/filelist"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz"
,
...
...
@@ -606,6 +652,14 @@
"node"
:
">= 0.8"
}
},
"node_modules/on-headers"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"
,
"integrity"
:
"sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/parseurl"
:
{
"version"
:
"1.3.3"
,
"resolved"
:
"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
,
...
...
@@ -667,6 +721,14 @@
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/random-bytes"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz"
,
"integrity"
:
"sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/range-parser"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
,
...
...
@@ -852,6 +914,17 @@
"node"
:
">= 0.6"
}
},
"node_modules/uid-safe"
:
{
"version"
:
"2.1.5"
,
"resolved"
:
"https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz"
,
"integrity"
:
"sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA=="
,
"dependencies"
:
{
"random-bytes"
:
"~1.0.0"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/unpipe"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
,
...
...
package-lock.json
View file @
6de54de
...
...
@@ -11,9 +11,11 @@
"dependencies"
:
{
"body-parser"
:
"^1.20.0"
,
"bootstrap"
:
"^5.1.3"
,
"cookie-parser"
:
"^1.4.6"
,
"ejs"
:
"^3.1.7"
,
"express"
:
"^4.18.1"
,
"express-error-handler"
:
"^1.1.0"
,
"express-session"
:
"^1.17.3"
,
"http"
:
"^0.0.1-security"
,
"mysql"
:
"^2.18.1"
,
"path"
:
"^0.12.7"
,
...
...
@@ -206,6 +208,26 @@
"node"
:
">= 0.6"
}
},
"node_modules/cookie-parser"
:
{
"version"
:
"1.4.6"
,
"resolved"
:
"https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz"
,
"integrity"
:
"sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA=="
,
"dependencies"
:
{
"cookie"
:
"0.4.1"
,
"cookie-signature"
:
"1.0.6"
},
"engines"
:
{
"node"
:
">= 0.8.0"
}
},
"node_modules/cookie-parser/node_modules/cookie"
:
{
"version"
:
"0.4.1"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz"
,
"integrity"
:
"sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/cookie-signature"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
,
...
...
@@ -330,6 +352,32 @@
"mout"
:
"0.12.0"
}
},
"node_modules/express-session"
:
{
"version"
:
"1.17.3"
,
"resolved"
:
"https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz"
,
"integrity"
:
"sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw=="
,
"dependencies"
:
{
"cookie"
:
"0.4.2"
,
"cookie-signature"
:
"1.0.6"
,
"debug"
:
"2.6.9"
,
"depd"
:
"~2.0.0"
,
"on-headers"
:
"~1.0.2"
,
"parseurl"
:
"~1.3.3"
,
"safe-buffer"
:
"5.2.1"
,
"uid-safe"
:
"~2.1.5"
},
"engines"
:
{
"node"
:
">= 0.8.0"
}
},
"node_modules/express-session/node_modules/cookie"
:
{
"version"
:
"0.4.2"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz"
,
"integrity"
:
"sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/filelist"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz"
,
...
...
@@ -622,6 +670,14 @@
"node"
:
">= 0.8"
}
},
"node_modules/on-headers"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"
,
"integrity"
:
"sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/parseurl"
:
{
"version"
:
"1.3.3"
,
"resolved"
:
"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
,
...
...
@@ -683,6 +739,14 @@
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/random-bytes"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz"
,
"integrity"
:
"sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/range-parser"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
,
...
...
@@ -868,6 +932,17 @@
"node"
:
">= 0.6"
}
},
"node_modules/uid-safe"
:
{
"version"
:
"2.1.5"
,
"resolved"
:
"https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz"
,
"integrity"
:
"sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA=="
,
"dependencies"
:
{
"random-bytes"
:
"~1.0.0"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/unpipe"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
,
...
...
@@ -1048,6 +1123,22 @@
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz"
,
"integrity"
:
"sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
},
"cookie-parser"
:
{
"version"
:
"1.4.6"
,
"resolved"
:
"https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz"
,
"integrity"
:
"sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA=="
,
"requires"
:
{
"cookie"
:
"0.4.1"
,
"cookie-signature"
:
"1.0.6"
},
"dependencies"
:
{
"cookie"
:
{
"version"
:
"0.4.1"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz"
,
"integrity"
:
"sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
}
}
},
"cookie-signature"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
,
...
...
@@ -1150,6 +1241,28 @@
"mout"
:
"0.12.0"
}
},
"express-session"
:
{
"version"
:
"1.17.3"
,
"resolved"
:
"https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz"
,
"integrity"
:
"sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw=="
,
"requires"
:
{
"cookie"
:
"0.4.2"
,
"cookie-signature"
:
"1.0.6"
,
"debug"
:
"2.6.9"
,
"depd"
:
"~2.0.0"
,
"on-headers"
:
"~1.0.2"
,
"parseurl"
:
"~1.3.3"
,
"safe-buffer"
:
"5.2.1"
,
"uid-safe"
:
"~2.1.5"
},
"dependencies"
:
{
"cookie"
:
{
"version"
:
"0.4.2"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz"
,
"integrity"
:
"sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
}
}
},
"filelist"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz"
,
...
...
@@ -1371,6 +1484,11 @@
"ee-first"
:
"1.1.1"
}
},
"on-headers"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"
,
"integrity"
:
"sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
},
"parseurl"
:
{
"version"
:
"1.3.3"
,
"resolved"
:
"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
,
...
...
@@ -1417,6 +1535,11 @@
"side-channel"
:
"^1.0.4"
}
},
"random-bytes"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz"
,
"integrity"
:
"sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
},
"range-parser"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
,
...
...
@@ -1564,6 +1687,14 @@
"mime-types"
:
"~2.1.24"
}
},
"uid-safe"
:
{
"version"
:
"2.1.5"
,
"resolved"
:
"https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz"
,
"integrity"
:
"sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA=="
,
"requires"
:
{
"random-bytes"
:
"~1.0.0"
}
},
"unpipe"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
,
...
...
package.json
View file @
6de54de
...
...
@@ -11,9 +11,11 @@
"dependencies"
:
{
"body-parser"
:
"^1.20.0"
,
"bootstrap"
:
"^5.1.3"
,
"cookie-parser"
:
"^1.4.6"
,
"ejs"
:
"^3.1.7"
,
"express"
:
"^4.18.1"
,
"express-error-handler"
:
"^1.1.0"
,
"express-session"
:
"^1.17.3"
,
"http"
:
"^0.0.1-security"
,
"mysql"
:
"^2.18.1"
,
"path"
:
"^0.12.7"
,
...
...
Please
register
or
login
to post a comment