Refercence
https://www.passportjs.org/
- 메인 페이지(client)는 인증제공자에게 Authorization Code 요청
- Auth Code를 서버로 전송
- 서버는 인증제공자로 부터 Access Token 발급
- client에게 access token 제공
- client는 access token으로 인증 성공
- passport-google
- passport-kakao
- passport-github
- passport-local
- passport 모듈 설치
npm install passport passport-google passport-local passport-kakao
-
CLIENT_ID / CLIENT_SECRET 발급
-
REACT 설정
passport.use(
new GoogleStrategy(
{
clientID: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
callbackURL: "/auth/google/callback",
},
function (accessToken, refreshToken, profile, done) {
done(null, profile);
}
)
);
router.get("/google", passport.authenticate("google", { scope: ["profile"] }));
router.get(
"/google/callback",
passport.authenticate("google", {
successRedirect: CLIENT_URL,
failureRedirect: "/login/failed",
})
);