Toggle navigation
Toggle navigation
This project
Loading...
Sign in
박민정
/
We-Shop
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
박민정
2021-06-02 23:58:46 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
5dd9c59e8aeb2d2ad248c5290bbabb0d727b88c1
5dd9c59e
1 parent
1c3e8136
[feat] Password Encryption
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
1 deletions
boiler-plate/index.js
boiler-plate/models/User.js
boiler-plate/package-lock.json
boiler-plate/package.json
boiler-plate/index.js
View file @
5dd9c59
...
...
@@ -33,6 +33,9 @@ app.post('/register', (req, res) => {
const
user
=
new
User
(
req
.
body
)
// req.body에 User의 정보를 저장
// 비밀번호 암호화
// mongoDB에서 오는 메서드. 정보들이 user model에 저장
user
.
save
((
err
,
userInfo
)
=>
{
// 만약 에러가 나면, json형식으로 success:false를 보내주고, 에러메시지를 보내줌
...
...
boiler-plate/models/User.js
View file @
5dd9c59
// monggoDB Model and Schema
const
mongoose
=
require
(
'mongoose'
);
// bcrypt 가져옴
const
bcrypt
=
require
(
'bcrypt'
)
// bcrypt 사용하기 위해 salt를 생성하고 그걸 이용해 암호화 시킴
const
saltRounds
=
10
// salt를 몇글자 할 건지
const
userSchema
=
mongoose
.
Schema
({
name
:{
...
...
@@ -32,6 +35,30 @@ const userSchema = mongoose.Schema({
}
})
// index.js의 app.post('/register', (req, res)에 있는
// user model에 user 정보를 저장하기 전에 무엇을 한다는 것
// function( next )를 해서 얘네가 끝난 다음에 다음걸 실행해라~
userSchema
.
pre
(
'save'
,
function
(
next
){
var
user
=
this
if
(
user
.
isModified
(
'password'
))
// password를 변경할 때만 적용되도록..
{
// 비밀번호 암호화 (https://www.npmjs.com/package/bcrypt 에서 가져옴)
bcrypt
.
genSalt
(
saltRounds
,
function
(
err
,
salt
)
// salt를 만드는 함수
{
if
(
err
)
return
next
(
err
)
// 에러 나면 return err
bcrypt
.
hash
(
user
.
password
,
salt
,
function
(
err
,
hash
)
{
// bcrypt.hash(암호화되지 않은 pw, salt, function(err, 암호화된 비밀번호))
if
(
err
)
return
next
(
err
)
// 에러 나면 return err
user
.
password
=
hash
// 성공하면 user.password를 hash로 교체
next
()
});
});
}
})
// 만든 스키마를 모델로 감싸줌
const
User
=
mongoose
.
model
(
'User'
,
userSchema
)
...
...
boiler-plate/package-lock.json
View file @
5dd9c59
This diff is collapsed. Click to expand it.
boiler-plate/package.json
View file @
5dd9c59
...
...
@@ -11,6 +11,7 @@
"author"
:
"mindyeoi"
,
"license"
:
"ISC"
,
"dependencies"
:
{
"bcrypt"
:
"^5.0.1"
,
"body-parser"
:
"^1.19.0"
,
"express"
:
"^4.17.1"
,
"mongoose"
:
"^5.12.12"
...
...
Please
register
or
login
to post a comment