Nodejs 및 mongoDB를 사용한 인증 - 2부
16645 단어 authenticationmongodbtutorialnode
이 파트에서는 모델을 설정하고
register
을 사용하여 입력을 수락하고 암호를 해시하는 bcrypt
끝점을 만듭니다. 시작하자.스타터 프로젝트
이전 자습서에서 오지 않은 경우 here에서 시작 프로젝트를 가져올 수 있습니다.
사용자 모델 만들기
db
폴더에 파일을 만들고 이름을 지정합니다userModel
.mongoose
const mongoose = require("mongoose");
UserSchema
)를 생성하고 몽구스 스키마를 다음과 같이 할당합니다.
const UserSchema = new mongoose.Schema({})
email
및 password
)를 입력하고 다음과 같이 빈 개체를 할당합니다.const UserSchema = new mongoose.Schema({
email: {},
password: {},
})
email: {
type: String,
required: [true, "Please provide an Email!"],
unique: [true, "Email Exist"],
},
password: {
type: String,
required: [true, "Please provide a password!"],
unique: false,
},
UserSchema
를 내보내겠습니다.
module.exports = mongoose.model.Users || mongoose.model("Users", UserSchema);
위의 코드는 다음과 같습니다. "해당 이름을 가진 사용자 테이블 또는 컬렉션이 없는 경우 생성"
Now we have completed our model for the user, the
user
collection is now ready to receive the data we will pass in.
사용자 끝점 등록
npm install --save bcrypt
bcrypt
파일 상단에 app.js
필요
const bcrypt = require("bcrypt");
userModel
가 필요합니다.
const User = require("./db/userModel");
register
줄 바로 앞에 module.exports = app;
엔드포인트를 생성합니다.
app.post("/register", (request, response) => {
});
bcrypt.hash(request.body.password, 10)
.then()
.catch()
위의 코드는
bcrypt
에게 password
로부터 받은 request body
를 10번 해싱하거나 솔트 라운드를 하라고 지시하고 있습니다.해시가 성공하면
then
블록에서 계속 진행하고 email
및 hashed password
를 데이터베이스에 저장하고 그렇지 않으면 catch
블록에서 오류를 반환합니다.catch
블록에서 다음과 같은 오류를 반환해 보겠습니다.
.catch((e) => {
response.status(500).send({
message: "Password was not hashed successfully",
e,
});
});
then
블록에 지금 가지고 있는 데이터를 저장해 보겠습니다. userModel
의 새 인스턴스를 생성하고 다음과 같이 업데이트된 데이터를 수집합니다.
.then((hashedPassword) => {
const user = new User({
email: request.body.email,
password: hashedPassword,
});
});
then
블록에 다음이 있습니다.
user.save()
그리고 그게 다야. 이쯤에서 멈추면 다 좋다. 저장은 되지만 피드백은 없습니다.
then...catch...
블록을 사용합시다.
user.save().then((result) => {
response.status(201).send({
message: "User Created Successfully",
result,
});
})
.catch((error) => {
response.status(500).send({
message: "Error creating user",
error,
});
});
마지막으로
register
끝점은 이제 다음과 같습니다.
// register endpoint
app.post("/register", (request, response) => {
// hash the password
bcrypt
.hash(request.body.password, 10)
.then((hashedPassword) => {
// create a new user instance and collect the data
const user = new User({
email: request.body.email,
password: hashedPassword,
});
// save the new user
user
.save()
// return success if the new user is added to the database successfully
.then((result) => {
response.status(201).send({
message: "User Created Successfully",
result,
});
})
// catch erroe if the new user wasn't added successfully to the database
.catch((error) => {
response.status(500).send({
message: "Error creating user",
error,
});
});
})
// catch error if the password hash isn't successful
.catch((e) => {
response.status(500).send({
message: "Password was not hashed successfully",
e,
});
});
});
끝점 테스트
Collections
를 클릭하면 아래와 같이 방금 추가한 데이터가 표시됩니다이 발을 얻은 것을 축하합니다
결론
이것은 이 인증 시리즈의 2부였습니다. 암호를 해시한 후 사용자를 mongoDB 데이터베이스에 추가하는 것이 얼마나 쉬운지 명확하게 보여줍니다.
모든 코드는 here입니다.
에베레깃 / 인증 백엔드
이 튜토리얼에서는 nodejs 및 mongoDB를 사용하여 사용자 인증을 생성하는 방법을 설명합니다.
다음으로 그 방법을 살펴보겠습니다.
나와 함께있어. 난 당신이 곧 볼 수 있습니다.
Reference
이 문제에 관하여(Nodejs 및 mongoDB를 사용한 인증 - 2부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ebereplenty/authentication-with-nodejs-and-mongodb-part-2-1hg9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)