우리는express와mongoDB에서 비밀번호를 어떻게 보호합니까

많은 개발자들은 우리가 악성 사용자를 통해 비밀번호를 어떻게 보호하는지, 그들이 데이터에 접근하고 서버를 파괴하려고 시도하는지 알고 있다.
express에서, 우리는 'bcrypt' 라는 라이브러리에 대해 토론했다. 라이브러리는 우리의 데이터를 산열했고, 산열된 데이터는 어떠한 사용자도 복호화하지 않는다. 이것은 라이브러리의 가장 좋은 기능이다.
시스템에 설치

npm i express mongoose bcrypt


사용자 모드.js


const {Schema,model}=mongoose
const userSchema=new Schema({
username:String,
password:String
)}
const User=model('user',userSchema)
module.exports=User

이api 단점을 통해 데이터 보내기

색인js


router.post('/api/register',acync (req,res)=>{
    const {username,password}=req.body
                    const oldUser=await User.findOne({username})
    if(oldUser) return res.status(400).send("User already registered")
    const salt=await bcrypt.getSalt(10)
    const hashPassword=await bcrypt.hash(password,salt);
                    const user=new User({username,password:hashPassword})
                    const result=await user.save()
    res.status(200).send(result);
             });
위의 예는 그것을 등록하고 그들의 데이터를 저장하는 것이다


router.post('/api/login',acync (req,res)=>{
    const {username,password}=req.body
    const user=await User.findOne({username})
    (!user) return res.status(404).send("User Not Found")
    const hashPassword=await bcrypt.compare(password,user.password);
                    if(user && hashPassword)
    return res.send({username,password:hashPassword});
    else
    return res.status(400).send("password is wrong")
             });


위의 코드는 로그인 사용자입니다. 지정되었습니다.

좋은 웹페이지 즐겨찾기