1. node.js 설치
2. react 프로젝트 생성
- 기본 react 프로젝트 생성
$ mkdir reactexample
$ cd reactexample
$ npx create-react-app reactexample
- 웹브라우저 실행
$ npm start
3. node 프로젝트 생성
$ mkdir nodejsexample
$ cd nodejsexample
$ npm init
$ npm install express --save
- nodejsexample\app.js 파일 생성
const express = require('express')
const app = express()
const port = 4000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
$ node app.js
4. passport-kakao 설치
npm install passport-kakao
5. react, 로그인 버튼 설정
- reactexample\src\App.js
import './App.css';
function App() {
return (
<div className="App">
<a href="http://localhost:4000/oauth"><img src="//k.kakaocdn.net/14/dn/btqCn0WEmI3/nijroPfbpCa4at5EIsjyf0/o.jpg" /> </a>
</div>
);
}
export default App;
6. node, passport-kakao 설정
- nodejsexample\app.js
const express = require('express')
const passport = require('passport')
const KakaoStrategy = require('passport-kakao').Strategy
const app = express()
const port = 4000
app.use(passport.initialize())
app.use(passport.session())
passport.use(new KakaoStrategy({
clientID : "REST API KEY를 입력하세요",
clientSecret: "", // clientSecret을 사용하지 않는다면 넘기지 말거나 빈 스트링을 넘길 것
callbackURL : "http://localhost:4000/oauth"
},
(accessToken, refreshToken, profile, done) => {
// authorization 에 성공했을때의 액션
console.log(`accessToken : ${accessToken}`)
console.log(`사용자 profile: ${JSON.stringify(profile._json)}`)
let user = {
profile: profile._json,
accessToken: accessToken
}
return done(null, user)
}
))
passport.serializeUser(function (user, done) {
console.log(`user : ${user.profile.id}`)
done(null, user)
})
passport.deserializeUser(function (obj, done) {
console.log(`obj : ${obj}`)
done(null, obj)
})
app.get('/oauth', passport.authenticate('kakao'), function (req, res) {
// 로그인 시작시 state 값을 받을 수 있음
res.send(`id : ${req.user.profile.id} / accessToken : ${req.user.accessToken} `)
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
참고 사항 for passport-kakao
- KOE101 : 잘못된 앱키, clientID확인할 것.
- KOE006 : 잘못된 리다이렉트URI, callbackURL확인할 것.
'카카오 REST API & SDK > 카카오 로그인' 카테고리의 다른 글
react + react-kakao-login 예제 - 카카오 로그인 (0) | 2021.03.21 |
---|---|
node.js + axios 예제 - Unlink (0) | 2021.03.14 |
카카오 로그인 시 Ajax 사용 가능한가? (0) | 2021.02.16 |
카카오 로그인 에러 KOE205 (0) | 2021.01.30 |
iOS(Swift)에서 카카오 로그인 사용하기 (0) | 2021.01.27 |
댓글