프로그래밍/Node.js

Node.js 생활코딩 정리 – facebook 인증 세부 권한 설정

가카리 2016. 12. 5. 21:38
반응형

facebook 인증 Permission(페이스북 세부 권한 설정)

 

다음 예제는 app_multi_user_facebook2.js로 한다.

 

사용자 이메일을 가져올 수 있다.

 

app_multi_user_facebook2.js에서 다음 부분을 수정해서 페이스북 사용자의 email을 가져올 수 있다.

 

app.get('/auth/facebook',

passport.authenticate('facebook',

{scope:'email'}//scope에서 페이스북에서 email 가져올 있음.

));

 

//facebook strategy 등록 부분

passport.use(new FacebookStrategy({

clientID: '381822035542311',//개발자 페이지에서 APP ID

clientSecret: '5f8d7e59b8701fa64cf7343ebe8c0d8a',//개발자 페이지에서 App Secret 입력

callbackURL: "/auth/facebook/callback",//다음 콜백 페이지

profileFields:['id', 'email', 'gender', 'link', 'locale',

'name', 'timezone', 'updated_time', 'verified', 'displayName']

},

 

//profile 페이스북에 의해 제공된 유저 프로필 정보를 포함한다.

function(accessToken, refreshToken, profile, done) {

console.log(profile);

var authId = 'facebook:'+ profile.id;//사용자의 고유한 값을 넣어줌

for(var i=0; i<users.length; i++){

var user = users[i];

if(user.authId === authId){//이미 존재하는 사용자인지 확인

return done(null, user);//사용자 정보를 넘겨줌

}

}

//이제 식별자는 authId 기존의 식별자는 username이었음 그래서 기존 데이터에 authId 추가함

//사용자의 이메일도 수용가능

var newuser = {

'authId':authId,

'displayName':profile.displayName,

'email':profile.emails[0].value

};

//사용자가 없으면 사용자를 만들고 푸쉬함

users.push(newuser);

done(null, newuser);

}

));

 

자세한 것은 필요시 찾아봐야한다.

 

이메일 주소는 사용자의 고유한 값이고 회원 인증, 가입 및 비밀번호 찾기 등에 다양하게 활용 될 수 있다.

 

중요한 정보이므로 꼭 가져와서 데이터베이스에 저장해 두도록 하자

 

출처 : https://opentutorials.org/course/2136

반응형