#Node.js
어제는 페이스북 로그인 시 callback 함수로 데이터를 가져오는 것까지 구현했다.
오늘은 페이스북 로그인을 마무리하려고 한다.
export const facebookLoginCallback = async (_, __, profile, cb) => {
const {
_json: { id, name, email }
} = profile;
try {
const user = await User.findOne({ email });
if (user) {
user.facebookId = id;
user.avatarUrl = `https://graph.facebook.com/${id}/picture?type=large`;
user.save();
return cb(null, user);
}
const newUser = await User.create({
email,
name,
facebookId: id,
avatarUrl: `https://graph.facebook.com/${id}/picture?type=large`
});
return cb(null, newUser);
} catch (error) {
return cb(error);
}
};
id, name, email 등 유저의 정보를 가져오고, Github 로그인을 처리할 때와 거의 동일하게 작성했다.
조금 다른 점은, 유저 이미지를 avatarUrl을 통해 가져온다는 점만 다르고, 그 외에는 동일하다.
'TIL' 카테고리의 다른 글
2020-06-29 Node.js. (ChangePW, Adding Video Creator) (0) | 2020.06.29 |
---|---|
2020-06-25 TIL (0) | 2020.06.25 |
2020-06-23 TIL (0) | 2020.06.23 |
2020-06-22 TIL (0) | 2020.06.22 |
2020-06-19 TIL (0) | 2020.06.19 |