https://opentutorials.org/course/3370
생활코딩님의 Express.js강의를 참고하였습니다.
1. passport 구글 전략 설치
passport-google-oauth2 전략을 받은 뒤 불러온다.
$npm install passport-google-oauth2
module.exports = function (app) {
var passport = require('passport'),
LocalStrategy = require('passport-local').Strategy,
GoogleStrategy = require('passport-google-oauth').OAuth2Strategy; // <=
2.구글 전략 사용
// Google Credentials를 외부 JSON 파일에서 불러옴
var googleCredentials = require('../config/google.json');
// Google OAuth2 전략을 사용하여 Passport 설정
passport.use(new GoogleStrategy({
// 클라이언트 ID 및 클라이언트 비밀 설정
clientID: googleCredentials.web.client_id,
clientSecret: googleCredentials.web.client_secret,
// 콜백 URL은 Google API 설정에서 정의된 URI를 사용
callbackURL: googleCredentials.web.redirect_uris[0] // redirect_uris가 정의되어 있어야 함
},
function (accessToken, refreshToken, profile, done) {
// Google 사용자 정보를 기반으로 사용자를 찾거나 새로 생성
User.findOrCreate({
googleId: profile.id // Google 프로필 ID를 사용하여 사용자 찾기
}, function (err, user) {
// 사용자 정보와 오류를 Passport에 전달
return done(err, user);
});
}));
// Google 인증을 시작하는 라우트 설정
app.get('/auth/google',
passport.authenticate('google', {
// 요청할 OAuth2 스코프 설정
scope: ['https://www.googleapis.com/auth/plus.login']
}));
// Passport 객체를 반환하여 다른 모듈에서 사용할 수 있도록 함
return passport;
'BackEnd > Express.js' 카테고리의 다른 글
[Express.js] 구글 OAuth 프로젝트 등록하기 (0) | 2024.09.23 |
---|---|
[Express.js] 플래시 메시지(Flash Message) (0) | 2024.09.22 |
[Express.js] Passport.js (0) | 2024.09.21 |