https://developers.kakao.com/apps/new 에서 앱을 만든다.

http://localhost/oauth http://localhost/oauth 두 개를 설정했다.
passport-kakao 는 카카오 로그인을 사용하게 해주는 passport 관련 모듈이다. passport 가 없다면 카카오에서 제공하는 REST API를 하나하나 따라가야 한다.
const passport = require('passport');
const express = require('express');
const KakaoStrategy = require('passport-kakao.js').Strategy;
const appKey = 'YOUR_APP_REST_API_KEY';
const appSecret = 'YOUR_APP_CLIENT_SECRET_KEY';
// passport 에 Kakao Oauth 추가
passport.use(
'kakao',
new KakaoStrategy(
{
clientID: appKey,
clientSecret: appSecret,
callbackURL: '<http://localhost:3000/oauth>', // 카카오 로그인 시도 후 내 앱으로
},
function(accessToken, refreshToken, params, profile, done) {
// authorization 에 성공했을때의 액션
return done(null, profile._json);
}
)
);
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(obj, done) {
done(null, obj);
});
const app = express();
app.use(passport.initialize());
app.get('/login', passport.authenticate('kakao'));
app.get('/oauth', passport.authenticate('kakao'), function(req, res) {
res.end();
});
app.listen(3000);
카카오 예제 코드 https://github.com/rotoshine/passport-kakao/blob/master/sample/sample.js
app.get('/login', passport.authenticate('kakao')) 로 되어 있기 때문에 로그인 버튼에 http://myhomepage/login 으로 href 를 달아 두면 된다.
카카오 로그인이 성공하면 http://myhomepage/oauth 로 리다이렉트 되며 KakaoStrategy 에서 추가 작업을 할 수 있다.