inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue로 Nodebird SNS 만들기

'Missing credentials' 이 뜹니다.. passport 문제

2063

흐미부자얍

작성한 질문수 11

0

일단,

1. 프론트로 부터 받아온 req.body 를 찍으니 아래와 같이 잘 넘어 왔구요.

그 다음 아래 app.js info로 넘어온 데이터가 저렇게 missing credentials로 나옵니다.

이전에 다른 수강생분께서 질문주신대로 잘 맞춰서 했다고 생각하는데 

어디가 이상이 있는건지 문의 드립니다..

2. 백엔드 app.js 에서 로그인 받는 부분 입니다.

app.post('/user/login'async(reqresnext=> {
    console.log('/user/login-----> 'req.body);
    try {
        //  -> passport LocalStrategy 으로 전송.
        passport.authenticate('local', (erruserinfo=>{
            if (err) {
                console.log('[post]/user/login (Error) 'err);
                return next(err);
            }
            if (info) {
                console.log('[post]/user/login (Fail) 'info);
                return res.status(401).send(info);
            }
            console.log('[post]/user/login 'user);
             // 세션에다 사용자 정보 저장( 어떻게 저장할 것인가? )
            return req.login(userasync(err=> {
                if (err) {
                    return next(err);
                }
                return res.json(user);
            });
        })(resreqnext); 
    }
    catch(err) {
        
    }
});

3. passport/local.js 코드 입니다.

여기에서도 usernameField랑 passwordField에 저기 1번에서 넘어온 parameter그대로 사용해서 해줬는데요.

왜 자꾸 missing credentails가 뜨는지... 도통 해결을 못하겠네요 ㅜㅜ

const passport = require('passport');
const { StrategyLocalStrategy } = require('passport-local');
const db = require('../models');
const bcrypt = require('bcrypt');
module.exports = () => {
    passport.usenew LocalStrategy(
        {
            usernameField: 'myid'// req.body.myid
            passwordField: 'password'//req.body.password

        }, async (myidpassworddone=> {
            try {
                console.log('******* passport / local 'myidpassword);
    
                // 사용자 여부 체크
                const existUser = await db.User.findOne({
                    where: { myid }
                });
                if (!exexistUser) {
                    // done(에러, 성공, 실패)
                    return done(nullfalse, { reason: '존재 하지 않는 사용자 입니다. ' }); 
                }

                // 비밀번호 체크
                const result = await bcrypt.compare(passwordexistUser.password);
                // 만약 패스워드가 일치 하지 않으면, false
                if (result) {
                    return done(nullexistUser);
                } else {
                    return done(nullfalse, { reason: '비밀번호가 틀립니다.' });
                }

            } catch (err) {
                console.log(err);
                return done(err);
            }
         }
    ));
}

vuejs vuex nodejs aws mysql ssr

답변 4

0

흐미부자얍

아 해결되었습니다.. 감사합니다. ㅜㅜ 이부분이 가장 빡새용

0

제로초(조현영)

아, (res, req, next) 잘못 쓰셨네요. (req, res, next)입니다.

0

흐미부자얍

네 맞습니다 

0

제로초(조현영)

req.body 이미지가 짤렸는데 nickname, myid, password 이렇게 들어있는건가요?

npm run dev 할 때 에러가 발생합니다.

0

143

1

해당 강의는 리뉴얼 예정은 따로 없나요?

0

326

1

강의는 언제까지 업데이트 된 내용인가요?

0

328

2

실습 환경 문의(Node 버전)

0

363

1

로그인 새로고침시 풀림

0

289

1

안녕하세요! 로그인 유지 질문 드립니다!

0

401

1

웹 서버 관련해서 질문드립니다.

0

439

1

버전때매 질문 드립니다!!

0

311

1

이 강의는 vue3는 아닌가요??

0

370

1

vsCode에 관한 질문입니다

0

487

1

v.trim()이 타입에러가 뜹니다...

0

341

1

express.static('uploads')

0

340

2

STRING이 인식이 안되는데 이유알수있을까요?

0

444

2

<v-lsit-item-title> 에러

0

407

2

vue cli 를 실무에서도 사용하지 않으시나요?

0

317

1

선생님 처음 환경 셋팅 관련 문의드립니다.

0

383

1

nuxtServerInit 무한 로딩

0

971

3

Nginx Cookie 설정

0

720

2

상태가 204번인경우에는 어떻게 처리를 해야하나요?

0

290

1

선생님 nuxt 관련질문드립니다.

0

347

1

인덱스 비교로 삭제해도 될까요?

0

380

1

질문 드립니다!

0

327

2

안녕하세요

0

223

1

궁금한점이있습니다

0

233

1