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'
}
}
가져온 결과 콘솔로 확인해보니 이렇게 나오구요
좀더 공부해보려다 안되서 막막합니다 ㅠㅠ
혹시 이유를 아실까요 ㅠㅠ