• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

passport-naver

21.01.22 15:01 작성 조회수 577

0

passport-naver을 이용해보려 하는데 

porfile.displayName 값이 계속 undefind여서 nick값에 들어가지가 않습니다... 

naver 앱등록할때 권한도 다 설정 해줬는데 왜 정보를 받아오지 못할까요 제로초님 ㅠㅠ 

const passport = require('passport');
const NaverStrategy = require('passport-naver').Strategy;

const User = require('../models/user');

module.exports = () => {
    passport.use(new NaverStrategy ({
        clientID: process.env.NAVER_ID, // 네이버에서 발급받을 ID
        clientSecret: process.env.NAVER_SECRET,
        callbackURL: '/auth/naver/callback', // 네이버로부터 인증결과를 받을 라우터 주소
    }, async (accessToken, refreshRoken, response, done) => {  // 네[이버에서 인증 후 Token 과 profile을 보내준다.
        console.log('naver profile', response);
        try {
            const exUser = await User.findOne({     // 기존의 User가 있는지 조회
                where: { snsId: response.id, provider: 'naver' },
            });
            if(exUser) {   // 기존 User의 정보가 있다면 User정보를 done과 호출하고 전략을 종료
                done(null, exUser);
            } else {  // 기존의 User정보가 없다면 회원가입을 진행
                const newUser = await User.create({
                    
                    email:  response.emails[0].value,
                    nick: response.id,
                    snsId: response.id,
                    provider: 'naver',
                    naver: response._json
                });
                done(null, newUser); // 사용자 생성 후 done함수 호출
            }
        } catch (error) {
            console.log(error);
            done(error);
        }
    }));
};

이렇게 작성했습니다 

naver profile {

  provider: 'naver',

  id: '60727489',

  displayName: undefined,

  emails: [ { value: 'juren528@gmail.com' } ],

  _json: {

    email: 'juren528@gmail.com',

    nickname: undefined,

    profile_image: undefined,

    age: undefined,

    birthday: undefined,

    id: '60727489'

  }

}

가져온 결과 콘솔로 확인해보니 이렇게 나오구요

좀더 공부해보려다 안되서 막막합니다 ㅠㅠ 

혹시 이유를 아실까요 ㅠㅠ

답변 3

·

답변을 작성해보세요.

0

Han N님의 프로필

Han N

2021.01.22

제가 로그인 할때 정보제공 동의 창이 안뜨고 로그인을 자동으로 진행했더니 정보가 안넘어 왔습니다 혹시 몰라 다른 아이디 등록해서 로그인 진행하니까 동의 창 뜨길래 동의 하고 로그인 진행했더니 정상적으로 넘어옵니다

답변 감사합니다  ㅎㅎㅎ

0

Han N님의 프로필

Han N

2021.01.22

여기서 체크 했습니다. 네이버 계정에 이름 이메일 별명 기본정보는 있는데 정보를 가져오지 못하네요 ㅠ

0

혹시 네이버 로그인 시도할 때 고객 입장에서 제공할 정보 체크하는 것 추가로 있는데 거기서 이메일 외의 것도 추가하셨나요? 그리고 반대로 네이버에 저런 정보가 들어있나요?