본문 바로가기

Programing/node js

node js 네이버 계정으로 로그인 (passport-naver)

소셜로그인으로 연동시키는법입니다.

 

passport-naver

 

npm install passport --save
npm install passport-naver --save

 

app.js

var naver_info = require('./config/naver_info').naver;
var passport = require('passport'); 
var NaverStrategy = require('passport-naver').Strategy;

passport.serializeUser(function(user, done) {
	done(null, user);
});

passport.deserializeUser(function(obj, done) {

    req.session.sid = user.name; 
    console.log("Session Check :" +req.session.sid);

	done(null, obj);
});

passport.use(new NaverStrategy({
    clientID: naver_info.client_id,
    clientSecret: naver_info.client_secret,
    callbackURL: naver_info.callback_url,

}, function(accessToken, refreshToken, profile, done) {
	process.nextTick(function () {
		//console.log("profile=");
		//console.log(profile);
		// data to be saved in DB
		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, profile);
	});
}));


app.get('/login/naver',
	passport.authenticate('naver') 
);

app.get('/login/naver/callback', 
    passport.authenticate('naver', {
        successRedirect: "/main",
        failureRedirect: '/' 
    })
);

 

 

네이버에서 키를 받아줍시다.

developers.naver.com/apps/#/register?api=nvlogin

 

 

 

naver_info.js

module.exports = {

    naver : {
        client_id : 'id값',
        client_secret : '시크릿값',
        callback_url : '지정한url',
    },

}

 

login.ejs 

<a href="/login/naver">네이버 계정으로 로그인</a>

 

결과화면

 

 

'Programing > node js' 카테고리의 다른 글

node js async 모듈  (0) 2021.02.17
node js panolens.js 360이미지  (0) 2021.01.14
node js mysql 연동 암호화 로그인  (0) 2021.01.11
node js request response 요청 응답 객체  (0) 2021.01.06
node js Express Router 관리, 분리  (0) 2021.01.06