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
'프로그래밍 > Node.js' 카테고리의 다른 글
Node.js 생활코딩 정리 – jade extends 란? (0) | 2016.12.10 |
---|---|
Node.js 생활코딩 정리 – Mysql을 이용한 Login 구현 (0) | 2016.12.09 |
Node.js 생활코딩 정리 – MYSQL을 이용한 회원가입(Register) (0) | 2016.12.08 |
Node.js 생활코딩 정리 – 인증 기능을 MYSQL을 이용해서 구현하기 (0) | 2016.12.07 |
Node.js 생활코딩 정리 – Federation Authentication (타사 인증) 페이스북으로 인증하기 (0) | 2016.12.05 |
Node.js 생활코딩 정리 – Passportjs 로그아웃 구현 (0) | 2016.12.04 |
Node.js 생활코딩 정리 – Passportjs 인증 모듈 사용하기 (0) | 2016.12.04 |
Node.js 생활코딩 정리 – Password Key Stretching 기법(PBKDF2 도입) (0) | 2016.12.04 |