반응형
안녕하세요. Lotts 입니다. 👏
node.js 프로젝트에 소셜 로그인 기능을 연동해 보겠습니다.
NAVER 기준입니다. 😄
Naver 뿐만아니라 kakao, google, github 등 다양하게 있습니다.
필수 npm을 설치합니다.
npm install passport
npm install passport-naver --save
❖ passport 참조 사이트입니다 ✌
❛ 네이버 아이디로 로그인' 기능을 사용하기전에
Naver Developers 에서 '네아로' API를 등록 ❜
✅ app.js
var passport = require('passport');
app.use(passport.initialize());
app.use(passport.session());
✅ login.js
var passport = require('passport'); //passport 추가
var NaverStrategy = require('passport-naver').Strategy;
router.get('/naver',passport.authenticate('naver',null),function(req, res) {
console.log("/main/naver");
});
//처리 후 callback 처리 부분 성공/실패 시 리다이렉트 설정
router.get('/naver/callback', passport.authenticate('naver', {
successRedirect: '/',
failureRedirect: '/main/login'
})
);
//별도 config 파일에 '네아로'에 신청한 정보 입력
passport.use(new NaverStrategy({
clientID: config.authLogin.naver.client_id,
clientSecret: config.authLogin.naver.secret_id,
callbackURL: config.authLogin.naver.callback_url
},
function(accessToken, refreshToken, profile, done) {
process.nextTick(function () {
var user = {
name: profile.displayName,
email: profile.emails[0].value,
username: profile.displayName,
provider: 'naver',
naver: profile._json
};
console.log("user=");
console.log(user);
return done(null, user);
});
}
));
//failed to serialize user into session 에러 발생 시 아래의 내용을 추가 한다.
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(req, user, done) {
// passport로 로그인 처리 후 해당 정보를 session에 담는다.
req.session.sid = user.name;
console.log("Session Check :" +req.session.sid);
done(null, user);
});
상세한 소스는 git에 올렸습니다. 😊
연동한 웹 화면입니다 👏👏
네이버 로그인을 클릭하시면
네아로와 연동되어 정상적으로 아래와 같은 화면이 나오게 됩니다
🤘🤘🤘
반응형
'Programming > NodeJS' 카테고리의 다른 글
프로세스 관리는 어떻게 해야 할까? [프로세스 관리도구] PM2 (1) | 2020.04.07 |
---|---|
node.js forever 사용 시 multer 이미지 등록 에러 (0) | 2020.01.02 |
node.js forever 사용법 (1) | 2020.01.02 |