Toggle navigation
Toggle navigation
This project
Loading...
Sign in
공태현
/
healthcare-with-webcam
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Graphs
Network
Create a new issue
Commits
Issue Boards
Authored by
공태현
2022-06-04 01:15:37 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
02533ad85090e5bba76f12178587b0443b9f2e8f
02533ad8
1 parent
f615ba68
Implement API for user register, login and logout
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
477 additions
and
2 deletions
.gitignore
mongodb.js → model/user.js
package-lock.json
package.json
server.js
.gitignore
0 → 100644
View file @
02533ad
package-lock.json
/node_modules/
\ No newline at end of file
mo
ngodb
.js
→
mo
del/user
.js
View file @
02533ad
const
{
json
}
=
require
(
'express/lib/response'
);
const
mongoose
=
require
(
'mongoose'
);
const
userSchema
=
new
mongoose
.
Schema
({
name
:
{
type
:
String
,
required
:
true
,
unique
:
true
,
},
password
:
{
type
:
String
,
required
:
true
,
trim
:
true
},
total_squart
:
{
type
:
Number
,
default
:
0
},
today_squart
:
{
type
:
Number
,
default
:
0
},
});
userSchema
.
methods
.
passwordCheck
=
function
(
password
,
cb
)
{
if
(
password
===
this
.
password
)
cb
(
null
,
isMatch
);
}
const
User
=
mongoose
.
model
(
'squartuser'
,
userSchema
)
module
.
exports
=
{
User
};
module
.
exports
=
mongoose
.
model
(
'squartuser'
,
userSchema
)
...
...
package-lock.json
View file @
02533ad
...
...
@@ -4,6 +4,25 @@
"lockfileVersion"
:
1
,
"requires"
:
true
,
"dependencies"
:
{
"@types/node"
:
{
"version"
:
"17.0.36"
,
"resolved"
:
"https://registry.npmjs.org/@types/node/-/node-17.0.36.tgz"
,
"integrity"
:
"sha512-V3orv+ggDsWVHP99K3JlwtH20R7J4IhI1Kksgc+64q5VxgfRkQG8Ws3MFm/FZOKDYGy9feGFlZ70/HpCNe9QaA=="
},
"@types/webidl-conversions"
:
{
"version"
:
"6.1.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz"
,
"integrity"
:
"sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
},
"@types/whatwg-url"
:
{
"version"
:
"8.2.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz"
,
"integrity"
:
"sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ=="
,
"requires"
:
{
"@types/node"
:
"*"
,
"@types/webidl-conversions"
:
"*"
}
},
"accepts"
:
{
"version"
:
"1.3.8"
,
"resolved"
:
"https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz"
,
...
...
@@ -13,11 +32,26 @@
"negotiator"
:
"0.6.3"
}
},
"any-promise"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz"
,
"integrity"
:
"sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
},
"array-flatten"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
,
"integrity"
:
"sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"base64-js"
:
{
"version"
:
"1.5.1"
,
"resolved"
:
"https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
,
"integrity"
:
"sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"base64-url"
:
{
"version"
:
"1.3.3"
,
"resolved"
:
"https://registry.npmjs.org/base64-url/-/base64-url-1.3.3.tgz"
,
"integrity"
:
"sha512-UiVPRwO/m133KIQrOEIqO07D8jaYjFIx7/lYRWTRVR23tDSn00Ves6A+Bk0eLmhyz6IJGSFlNCKUuUBO2ssytA=="
},
"body-parser"
:
{
"version"
:
"1.20.0"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz"
,
...
...
@@ -37,6 +71,23 @@
"unpipe"
:
"1.0.0"
}
},
"bson"
:
{
"version"
:
"4.6.4"
,
"resolved"
:
"https://registry.npmjs.org/bson/-/bson-4.6.4.tgz"
,
"integrity"
:
"sha512-TdQ3FzguAu5HKPPlr0kYQCyrYUYh8tFM+CMTpxjNzVzxeiJY00Rtuj3LXLHSgiGvmaWlZ8PE+4KyM2thqE38pQ=="
,
"requires"
:
{
"buffer"
:
"^5.6.0"
}
},
"buffer"
:
{
"version"
:
"5.7.1"
,
"resolved"
:
"https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"
,
"integrity"
:
"sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="
,
"requires"
:
{
"base64-js"
:
"^1.3.1"
,
"ieee754"
:
"^1.1.13"
}
},
"bytes"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
,
...
...
@@ -74,6 +125,11 @@
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
,
"integrity"
:
"sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"crc"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/crc/-/crc-3.0.0.tgz"
,
"integrity"
:
"sha512-+AjruG0m/tAAr6vckAT/fRlIk59IjTfdOisWu6P+Q7+BUaD1PYDeYaQKkO1hkBbv4rFDtwIZpvnbtPC/OF/W1w=="
},
"debug"
:
{
"version"
:
"2.6.9"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
,
...
...
@@ -82,6 +138,11 @@
"ms"
:
"2.0.0"
}
},
"denque"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/denque/-/denque-2.0.1.tgz"
,
"integrity"
:
"sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ=="
},
"depd"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
,
...
...
@@ -150,6 +211,28 @@
"vary"
:
"~1.1.2"
}
},
"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=="
}
}
},
"finalhandler"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz"
,
...
...
@@ -222,21 +305,42 @@
"safer-buffer"
:
">= 2.1.2 < 3"
}
},
"ieee754"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
,
"integrity"
:
"sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"inherits"
:
{
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
,
"integrity"
:
"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"ip"
:
{
"version"
:
"1.1.8"
,
"resolved"
:
"https://registry.npmjs.org/ip/-/ip-1.1.8.tgz"
,
"integrity"
:
"sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
},
"ipaddr.js"
:
{
"version"
:
"1.9.1"
,
"resolved"
:
"https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
,
"integrity"
:
"sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
},
"kareem"
:
{
"version"
:
"2.3.5"
,
"resolved"
:
"https://registry.npmjs.org/kareem/-/kareem-2.3.5.tgz"
,
"integrity"
:
"sha512-qxCyQtp3ioawkiRNQr/v8xw9KIviMSSNmy+63Wubj7KmMn3g7noRXIZB4vPCAP+ETi2SR8eH6CvmlKZuGpoHOg=="
},
"media-typer"
:
{
"version"
:
"0.3.0"
,
"resolved"
:
"https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
,
"integrity"
:
"sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"memory-pager"
:
{
"version"
:
"1.5.0"
,
"resolved"
:
"https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz"
,
"integrity"
:
"sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg=="
,
"optional"
:
true
},
"merge-descriptors"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
,
...
...
@@ -265,11 +369,164 @@
"mime-db"
:
"1.52.0"
}
},
"mongodb"
:
{
"version"
:
"4.5.0"
,
"resolved"
:
"https://registry.npmjs.org/mongodb/-/mongodb-4.5.0.tgz"
,
"integrity"
:
"sha512-A2l8MjEpKojnhbCM0MK3+UOGUSGvTNNSv7AkP1fsT7tkambrkkqN/5F2y+PhzsV0Nbv58u04TETpkaSEdI2zKA=="
,
"requires"
:
{
"bson"
:
"^4.6.2"
,
"denque"
:
"^2.0.1"
,
"mongodb-connection-string-url"
:
"^2.5.2"
,
"saslprep"
:
"^1.0.3"
,
"socks"
:
"^2.6.2"
}
},
"mongodb-connection-string-url"
:
{
"version"
:
"2.5.2"
,
"resolved"
:
"https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz"
,
"integrity"
:
"sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA=="
,
"requires"
:
{
"@types/whatwg-url"
:
"^8.2.1"
,
"whatwg-url"
:
"^11.0.0"
}
},
"mongoose"
:
{
"version"
:
"6.3.4"
,
"resolved"
:
"https://registry.npmjs.org/mongoose/-/mongoose-6.3.4.tgz"
,
"integrity"
:
"sha512-UP0azyGMdY+2YNbJUHeHhnVw5vPzCqs4GQDUwHkilif/rwmSZktUQhQWMp1pUgRNeF2JC30vWGLrInZxD7K/Qw=="
,
"requires"
:
{
"bson"
:
"^4.6.2"
,
"kareem"
:
"2.3.5"
,
"mongodb"
:
"4.5.0"
,
"mpath"
:
"0.9.0"
,
"mquery"
:
"4.0.3"
,
"ms"
:
"2.1.3"
,
"sift"
:
"16.0.0"
},
"dependencies"
:
{
"ms"
:
{
"version"
:
"2.1.3"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
,
"integrity"
:
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
}
}
},
"mongoose-session"
:
{
"version"
:
"0.0.4"
,
"resolved"
:
"https://registry.npmjs.org/mongoose-session/-/mongoose-session-0.0.4.tgz"
,
"integrity"
:
"sha512-nSRGIoC8V+V1R+HkyO6mkZTdc2k2XrNjIxPlWxrbDKkIdSVRlD3iDC0XbUwaX86LNiFv91XZ8hTVglyaW8iBPA=="
,
"requires"
:
{
"express-session"
:
"~1.8.2"
},
"dependencies"
:
{
"cookie"
:
{
"version"
:
"0.1.2"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz"
,
"integrity"
:
"sha512-+mHmWbhevLwkiBf7QcbZXHr0v4ZQQ/OgHk3fsQHrsMMiGzuvAmU/YMUR+ZfrO/BLAGIWFfx2Z7Oyso0tZR/wiA=="
},
"cookie-signature"
:
{
"version"
:
"1.0.5"
,
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.5.tgz"
,
"integrity"
:
"sha512-Ym05XFKVD+EOB43QU3ovI/KvqFo5MP4BGsH+SkAMn2mdjLj2W4bOSyNsw1Ik1gI7CyDtR9Ae2TUFHexgaiEuZg=="
},
"debug"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-2.0.0.tgz"
,
"integrity"
:
"sha512-jRxFR0Fb657ikmm6IjHY32v/Nqp9Ndcx4LBISXPfpguNaHh5JJnb+x37qalKPTu4fxMFnVBIyEGi72mmvl0BCw=="
,
"requires"
:
{
"ms"
:
"0.6.2"
}
},
"depd"
:
{
"version"
:
"0.4.5"
,
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-0.4.5.tgz"
,
"integrity"
:
"sha512-MyQx8POntp7sey9ghPezYB5gIKSbcce5pkoHdFmDYkiOcsE5f5yLLBzv8Qcs9Ll1hPgmEOfIae51n4Fa7l3zxw=="
},
"express-session"
:
{
"version"
:
"1.8.2"
,
"resolved"
:
"https://registry.npmjs.org/express-session/-/express-session-1.8.2.tgz"
,
"integrity"
:
"sha512-0vM/0QTrmStRD8AqAlWZTDraTuPhG5uTUY4RhT9wbEfmQubqc8LUQ4mnd1mnNx0HaoQ1gpPMlkJcTXeyjxigLA=="
,
"requires"
:
{
"cookie"
:
"0.1.2"
,
"cookie-signature"
:
"1.0.5"
,
"crc"
:
"3.0.0"
,
"debug"
:
"~2.0.0"
,
"depd"
:
"0.4.5"
,
"on-headers"
:
"~1.0.0"
,
"parseurl"
:
"~1.3.0"
,
"uid-safe"
:
"1.0.1"
,
"utils-merge"
:
"1.0.0"
}
},
"ms"
:
{
"version"
:
"0.6.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-0.6.2.tgz"
,
"integrity"
:
"sha512-/pc3eh7TWorTtbvXg8je4GvrvEqCfH7PA3P7iW01yL2E53FKixzgMBaQi0NOPbMJqY34cBSvR0tZtmlTkdUG4A=="
},
"uid-safe"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/uid-safe/-/uid-safe-1.0.1.tgz"
,
"integrity"
:
"sha1-W9FIRgouhPVPGT/SA1LIw9feasg="
,
"requires"
:
{
"base64-url"
:
"1"
,
"mz"
:
"1"
}
},
"utils-merge"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz"
,
"integrity"
:
"sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg="
}
}
},
"mpath"
:
{
"version"
:
"0.9.0"
,
"resolved"
:
"https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz"
,
"integrity"
:
"sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew=="
},
"mquery"
:
{
"version"
:
"4.0.3"
,
"resolved"
:
"https://registry.npmjs.org/mquery/-/mquery-4.0.3.tgz"
,
"integrity"
:
"sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA=="
,
"requires"
:
{
"debug"
:
"4.x"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
,
"integrity"
:
"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
,
"requires"
:
{
"ms"
:
"2.1.2"
}
},
"ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"ms"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"integrity"
:
"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"mz"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/mz/-/mz-1.3.0.tgz"
,
"integrity"
:
"sha512-x+R7YSsEySSpV5uEB+C47JTmxv+YKKNsW3W+hjvq8NbLn8ntLgYXGrR5RjQ3Fs0e7Chw8Rp/1e5eo0n5LP76cw=="
,
"requires"
:
{
"native-or-bluebird"
:
"1"
,
"thenify"
:
"3"
,
"thenify-all"
:
"1"
}
},
"native-or-bluebird"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/native-or-bluebird/-/native-or-bluebird-1.2.0.tgz"
,
"integrity"
:
"sha512-0SH8UubxDfe382eYiwmd12qxAbiWGzlGZv6CkMA+DPojWa/Y0oH4hE0lRtFfFgJmPQFyKXeB8XxPbZz6TvvKaQ=="
},
"negotiator"
:
{
"version"
:
"0.6.3"
,
"resolved"
:
"https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
,
...
...
@@ -288,6 +545,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"
,
...
...
@@ -307,6 +569,11 @@
"ipaddr.js"
:
"1.9.1"
}
},
"punycode"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
,
"integrity"
:
"sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"qs"
:
{
"version"
:
"6.10.3"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.10.3.tgz"
,
...
...
@@ -315,6 +582,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"
:
"sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ=="
},
"range-parser"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
,
...
...
@@ -341,6 +613,15 @@
"resolved"
:
"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
,
"integrity"
:
"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"saslprep"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz"
,
"integrity"
:
"sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag=="
,
"optional"
:
true
,
"requires"
:
{
"sparse-bitfield"
:
"^3.0.3"
}
},
"send"
:
{
"version"
:
"0.18.0"
,
"resolved"
:
"https://registry.npmjs.org/send/-/send-0.18.0.tgz"
,
...
...
@@ -394,16 +675,68 @@
"object-inspect"
:
"^1.9.0"
}
},
"sift"
:
{
"version"
:
"16.0.0"
,
"resolved"
:
"https://registry.npmjs.org/sift/-/sift-16.0.0.tgz"
,
"integrity"
:
"sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ=="
},
"smart-buffer"
:
{
"version"
:
"4.2.0"
,
"resolved"
:
"https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz"
,
"integrity"
:
"sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="
},
"socks"
:
{
"version"
:
"2.6.2"
,
"resolved"
:
"https://registry.npmjs.org/socks/-/socks-2.6.2.tgz"
,
"integrity"
:
"sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA=="
,
"requires"
:
{
"ip"
:
"^1.1.5"
,
"smart-buffer"
:
"^4.2.0"
}
},
"sparse-bitfield"
:
{
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz"
,
"integrity"
:
"sha1-/0rm5oZWBWuks+eSqzM004JzyhE="
,
"optional"
:
true
,
"requires"
:
{
"memory-pager"
:
"^1.0.2"
}
},
"statuses"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
,
"integrity"
:
"sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
},
"thenify"
:
{
"version"
:
"3.3.1"
,
"resolved"
:
"https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz"
,
"integrity"
:
"sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="
,
"requires"
:
{
"any-promise"
:
"^1.0.0"
}
},
"thenify-all"
:
{
"version"
:
"1.6.0"
,
"resolved"
:
"https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz"
,
"integrity"
:
"sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY="
,
"requires"
:
{
"thenify"
:
">= 3.1.0 < 4"
}
},
"toidentifier"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"
,
"integrity"
:
"sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
},
"tr46"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz"
,
"integrity"
:
"sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA=="
,
"requires"
:
{
"punycode"
:
"^2.1.1"
}
},
"type-is"
:
{
"version"
:
"1.6.18"
,
"resolved"
:
"https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"
,
...
...
@@ -413,6 +746,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"
,
...
...
@@ -427,6 +768,20 @@
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
,
"integrity"
:
"sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
},
"webidl-conversions"
:
{
"version"
:
"7.0.0"
,
"resolved"
:
"https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz"
,
"integrity"
:
"sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
},
"whatwg-url"
:
{
"version"
:
"11.0.0"
,
"resolved"
:
"https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz"
,
"integrity"
:
"sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ=="
,
"requires"
:
{
"tr46"
:
"^3.0.0"
,
"webidl-conversions"
:
"^7.0.0"
}
}
}
}
...
...
package.json
View file @
02533ad
...
...
@@ -15,6 +15,8 @@
"license"
:
"ISC"
,
"dependencies"
:
{
"express"
:
"^4.18.1"
,
"mongoose"
:
"^6.3.4"
"express-session"
:
"^1.17.3"
,
"mongoose"
:
"^6.3.4"
,
"mongoose-session"
:
"0.0.4"
}
}
...
...
server.js
View file @
02533ad
const
express
=
require
(
'express'
);
const
app
=
express
();
const
port
=
3000
app
.
get
(
'/'
,
(
req
,
res
)
=>
{
res
.
send
(
"Hello World"
)
})
...
...
@@ -9,3 +14,102 @@ app.get('/', (req,res) => {
app
.
listen
(
port
,
()
=>
{
console
.
log
(
`Listening on
${
port
}
port`
);
})
// model/user.js
const
{
User
}
=
require
(
'./model/User'
);
const
mongoose
=
require
(
'mongoose'
);
// db 연결을 위한 키 값 , 보안을 위해 최종 마스터 브런치에는 포함하지 않을 예정.
mongoose
.
connect
(
'mongodb+srv://kongtae:ksas9825!%40@squartusers.e2ddc.mongodb.net/?retryWrites=true&w=majority'
)
.
then
(()
=>
console
.
log
(
'MongoDB connect!'
))
.
catch
(
err
=>
console
.
log
(
err
))
// 유저 등록 및 로그인 API
// 로그인 세션 : 로그인 정보 유지.
const
express_session
=
require
(
'express-session'
)
app
.
use
(
express_session
({
secret
:
"@secret@number"
,
// 암호화 키
resave
:
false
,
saveUninitialized
:
false
,
store
:
require
(
'mongoose-session'
)(
mongoose
),
cookie
:
{
maxAge
:
6
*
24
}
}))
// 등록 .
app
.
use
(
express
.
json
())
app
.
post
(
'/api/users/register'
,
(
req
,
res
)
=>
{
const
new_user
=
new
User
(
req
.
body
);
new_user
.
save
((
err
,
userInfo
)
=>
{
if
(
err
)
return
res
.
json
({
successs
:
false
,
err
})
return
res
.
status
(
200
).
json
({
success
:
true
})
})
})
// 로그인 .
app
.
post
(
'/api/users/login'
,
(
req
,
res
)
=>
{
User
.
findOne
({
name
:
req
.
body
.
name
},
(
err
,
user
)
=>
{
if
(
!
user
)
{
return
res
.
json
({
loginSuccess
:
false
,
message
:
"이름이 일치하는 사용자가 없습니다 !"
})
}
else
if
(
req
.
body
.
password
===
user
.
password
)
{
req
.
session
.
user
=
{
user_name
:
req
.
body
.
name
,
user_password
:
req
.
body
.
password
,
}
console
.
log
(
req
.
session
.
user
)
return
res
.
json
({
loginSuccess
:
true
,
})
}
else
{
return
res
.
json
({
loginSuccess
:
false
,
message
:
"비밀번호가 일치하지 않습니다 !"
})
}
})
})
// 로그아웃
app
.
get
(
'/api/users/logout'
,
(
req
,
res
)
=>
{
var
session
=
req
.
session
if
(
session
.
user
)
{
req
.
session
.
destroy
(
err
=>
{
if
(
err
)
{
console
.
log
(
err
)
return
res
.
json
({
logoutSuccess
:
false
})
}
else
{
console
.
log
(
'로그아웃 완료'
)
return
res
.
json
({
logoutSuccess
:
true
})
}
})
// res.redirect('/');
}
else
{
console
.
log
(
'로그인이 되어있지 않습니다.'
)
return
res
.
json
({
logoutSuccess
:
true
,
})
}
})
// 세션 저장 확인
app
.
get
(
'/api/session'
,
(
req
,
res
)
=>
{
console
.
log
(
req
.
session
.
user
)
return
res
.
json
({
session
:
req
.
session
})
})
...
...
Please
register
or
login
to post a comment