Skip to content
Snippets Groups Projects
Commit 95f8e123 authored by tpgus2603's avatar tpgus2603
Browse files

refactor: 로컬테스트용 로그인로직 수정

parent 39c45e32
Branches
No related tags found
1 merge request!42[#25] 배포코드 master브랜치로 이동
......@@ -55,7 +55,7 @@ app.use(passport.session());
app.use(flash());
app.set('trust proxy', 1);
//app.set('trust proxy', 1);
console.log('MongoDB URI:', process.env.MONGO_URI);
//라우터 등록
const authRoutes = require('./routes/auth');
......
// middlewares/auth.js
exports.isLoggedIn = (req, res, next) => { //로그인된 사용자자만 접근허용
exports.isLoggedIn = (req, res, next) => { // 로그인된 사용자만 접근 허용
if (req.isAuthenticated()) {
return next();
}
res.redirect('/auth/login');
// 리다이렉트 대신 401 Unauthorized 상태 반환
res.status(401).json({ error: '로그인 되지않은 사용자' });
};
exports.isNotLoggedIn = (req, res, next) => { //로그인 안되면 리다이렉트
exports.isNotLoggedIn = (req, res, next) => { // 로그인 안된 사용자만 접근 허용
if (!req.isAuthenticated()) {
return next();
}
res.redirect('/');
};
// 리다이렉트 대신 400 Bad Request 상태 반환 (필요에 따라 변경 가능)
res.status(400).json({ error: '이미 로그인된' });
};
\ No newline at end of file
// passport/googleStrategy.js
const { Strategy: GoogleStrategy } = require('passport-google-oauth20');
const User = require('../models/user');
const User = require('../models/user');
module.exports = new GoogleStrategy(
{
clientID: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
callbackURL: process.env.CALLBACK_URL,
passReqToCallback: true, // req 객체를 콜백에 전달
},
async (accessToken, refreshToken, profile, done) => {
async (req, accessToken, refreshToken, profile, done) => {
try {
// 프로필에서 사용자 정보 추출
const email = profile.emails[0].value;
......@@ -23,7 +23,7 @@ module.exports = new GoogleStrategy(
return done(null, user);
} catch (err) {
return done(err);
return done(err, null);
}
}
);
......@@ -12,11 +12,10 @@ router.get(
})
);
// Google OAuth 콜백 라우터
router.get(
'/google/callback',
passport.authenticate('google', {
failureRedirect: '/auth/login'
failureRedirect: `${process.env.FRONT_URL}/login` // 수정된 부분
}),
(req, res) => {
const redirectUrl = process.env.FRONT_URL;
......
const express = require('express');
const router = express.Router();
// GET /api/session/info
router.get('/info', (req, res) => {
if (req.user) {
const { email, name } = req.user;
// 캐싱 비활성화
res.set('Cache-Control', 'no-store');
res.set('Pragma', 'no-cache');
return res.status(200).json({
user: {
email,
name,
},
});
}
// 세션이 만료되었거나 사용자 정보가 없는 경우
res.set('Cache-Control', 'no-store');
res.set('Pragma', 'no-cache');
res.status(401).json({
message: '세션이 만료되었거나 사용자 정보가 없습니다.',
});
});
module.exports = router;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment