카카오 디벨로퍼스 접속
로그인하고 어플리케이션 등록
앱 이름을 적고 플랫폼 -> Web -> 도메인 적어줌
카카오 로그인에서 Redirect URI 에 callback url 적어주고
활성화 해줌
동의항목에 가서 필요한 거 동의로 바꿔줌
로그인 할 때 동의 여부가 나옴
node에서 npm 설치하고
npm i passport-kakao passport 해서
kakao passport 와 passport 둘다 설치해줌
요약정보나 앱키를 가면 REST API 키가 나오는데 복사해줌
코드
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var passport = require('passport');
var KakaoStrategy = require('passport-kakao').Strategy;
var client_id = "REST API KEY"; //REST API KEY
var callback_url = "http://localhost:3000/kakao/callback";
passport.serializeUser((user, done) => {
done(null, user);
});
passport.deserializeUser((obj, done) => {
done(null, obj);
});
passport.use('login-kakao', new KakaoStrategy({
clientID: client_id,
callbackURL: callback_url,
},
(accessToken, refreshToken, profile, done) => {
console.log(profile);
done(null, profile);
}
));
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var kakaoRouter = require('./routes/kakao');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({
extended: false
}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(passport.initialize());
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/kakao', kakaoRouter);
// catch 404 and forward to error handler
app.use(function (req, res, next) {
next(createError(404));
});
// error handler
app.use(function (err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
var express = require('express');
const passport = require('passport');
var router = express.Router();
/* GET users listing. */
router.get('/', passport.authenticate('login-kakao', null), (req, res) => {
console.log("kakao failed, stopped");
});
//콜백 라우터
router.get('/callback', (req, res, next) => {
passport.authenticate('login-kakao', (err, user) => {
if (err) {
console.log(err);
res.send(err);
} else {
console.log(user);
res.send(user);
}
})(req, res);
});
module.exports = router;
실행하면 json 파일로 유저 개인정보가 쭉 나오는데 json online 뷰어로 볼 수 있다.
'C# > 수업내용' 카테고리의 다른 글
2020.09.09. 수업내용 - 네이버 아이디 로그인 (0) | 2020.09.09 |
---|---|
2020.08.20. 수업내용 - Firebase 연동 (1) (0) | 2020.08.20 |
2020.08.13. 수업내용 - facebook 연동 (0) | 2020.08.13 |
2020.08.12. 수업내용 - GPGS 연동 +로그인이 안될 때( 계정 로그인 설정 ) (0) | 2020.08.12 |
2020.08.06. 수업내용 - Asset Bundle (0) | 2020.08.06 |