반응형
const passport = require('passport')
const express = require('express')
const NaverStrategy = require('passport-naver-v2').Strategy
const PORT = process.env.PORT || 3030
const app = express()
/**
* passport setting
*/
passport.use(
new NaverStrategy(
{
clientID: "aTJQYHhfWsG8byShhjS8",
clientSecret: "P8I3wIA28J",
callbackURL: 'http://localhost:3030/api/naver/login/callback',
},
(accessToken, refreshToken, params, profile, done) => {
// 계정 관련 구현 부분
return done(null, profile._json)
}
)
)
passport.serializeUser(function (user, done) {
done(null, user)
})
passport.deserializeUser(function (obj, done) {
done(null, obj)
})
/**
* express app setting
*/
app.use(passport.initialize())
app.get('/login/reprompt', passport.authenticate('naver', { authType: 'reprompt' }))
app.get('/api/naver/login', passport.authenticate('naver', { state: 'sampleState' }))
app.get('/api/naver/login/callback', passport.authenticate('naver'), (req, res) => {
res.send('result :' + JSON.stringify({ state: req.query.state, user: req.user }))
})
/**
* run server
*/
app.listen(PORT, () => {
console.log(`💡 Server is running on ${PORT}`)
})
반응형