inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

노드 리액트 기초 강의 #12 토큰 생성 with jsonwebtoken

질문드립니다.. 꼭 댓글 부탁드려요..

349

Rush

작성한 질문수 5

0

MongoError: E11000 duplicate key error collection: test.users index: email_1 dup key: { email: "test1@naver.com" }

git 주소 : https://github.com/playautojoker/boiler-plate

config 폴더는 .gitignore 상태입니다..

mongoDB Collections 입니다. 

users

{"_id":{"$oid":"5ec692392ccdfb207026b875"},"role":{"$numberInt":"0"},"name":"test","email":"test1@naver.com","password":"$2b$10$LZtBa1FqjadQnAlTX8V7Duw5A9xfBNr3A/blWAOlB7XUApsi/wjHG","__v":{"$numberInt":"0"}}

postman req,res 입니다

req

{

"email" : "test1@naver.com",

"password" : "12345678"

}

res

{
    "driver"true,
    "name""MongoError",
    "index"0,
    "code"11000,
    "keyPattern": {
        "email"1
    },
    "keyValue": {
        "email""test1@naver.com"
    },
    "errmsg""E11000 duplicate key error collection: test.users index: email_1 dup key: { email: \"test1@naver.com\" }"
}

console.log(err)에 해당 errmsg가 나오고 있습니다.

도와주시기 바랍니다.

// token 생성 함수
userScehma.methods.jokerGenerateToken = function (cb){
const user = this;

    // jsonwebtoken을 이용해서 token을 생성하기
    const token = jwt.sign(user._id.toHexString(), 'secretToken')
    
    user.token = token

    console.log(user)
    user.save(function(erruserInfo){
        console.log(err)
        console.log(userInfo)
        if(err) {
            return cb(err)
        }
        else{
            cb(nulluserInfo)
        }
        
    })
}

react nodejs

답변 1

0

John Ahn

안녕하세요  보니깐  login route에   로직이랑 변수가 약간 꼬여 있었어요 ~~ 


app.post('/login', (req, res) => {


const email = req.body.email
const password = req.body.password
//1. 요청된 이메일을 데이터베이스에서 잇는지 찾는다.11

User.findOne({ email: email }, (err, userInfo) => {
if (!userInfo) {
return res.json({ loginSuccess: false, messasge: "제공된 이메일에 해당하는 유저가 없습니다." })
}

//2. 요청한 이메일이 데이터베이스에 있다면 비밀번호가 같은지 검수처리
userInfo.jokercomparePassword(password, (err, isMatch) => {
if (!isMatch) {

return res.json({ loginSuccess: false, message: "비밀번호가 틀렸습니다." })
}

//TODO 1번2번 통과했는데 jokerGenerateToken 여기서 E11000 duplicate key error collection: test.users index: email_1 dup key: { email: "test1@naver.com" } 에러나는중..
//3. 1번,2번이 모두 충족한다면 create token
else {
userInfo.jokerGenerateToken((err, userInfo) => {
console.log(userInfo)
if (err) return res.status(400).send(err);
console.log("여기안오지?")
//4. 토큰을 저장한다. cookie or local storeage or session storeage
return res.cookie("x_auth", userInfo.token)
.status(200)
.json({ loginSuccess: true, userid: userInfo.id })

})
}

})
})
})

이런식으로 바꿔주시면 됩니다 ^^  

깃 이메일이랑 비번이 필요하다고 하네요

0

35

1

404 에러

0

102

1

34강 인증 체크에서 element 사용 때문에 에러나시는 분들 이렇게 하심 됩니다.

0

119

1

로그인, 로그아웃, 토근 작동 안 함

0

239

0

9강 오류 어떻게 해결하나요?

0

194

1

localhost 에서 연결을 거부했습니다.

0

1927

4

포스트맨에서 true가 안떠요

0

150

1

왜 안되나요

0

129

1

몽고db 연결 오류가 납니다 위에껀 입력한 코드, 아래껀 터미널이에요

0

243

1

로그아웃 401 에러(Unauthorized)

0

504

2

암호가 해싱되지 않고 입력값 그대로 db에 저장되는 문제

0

149

1

7강중에서

0

162

2

User.findByToken is not a function

0

211

1

루트 디렉토리

0

270

1

useState

0

560

1

프록시 잘 설정했는데도 404 오류 뜨는 분들

5

875

6

webpack 관련 에러 질문

0

219

1

리액트 관련 질문

0

272

1

14강 로그아웃 안됨

0

318

1

mongoDB 데이터 확인하는 법

0

408

1

postman 에러

0

291

1

선생님 리덕스를 사용하면 어떠한 부분이 좋은지 알 수 있을까요?

0

234

1

다음과 같은 에러들이 발생합니다.

0

273

1

14강 로그아웃 기능 구현시 postman에서 Cannot POST 오류가 뜹니다.

0

379

1