로그인 500 오류
246
작성한 질문수 26
const express = require('express')
const bcrypt = require('bcrypt')
const { User } = require('../models')
const passport = require('passport')
const router = express.Router();
router.post('/login', (req, res, next) => {
passport.authenticate('local', (err, user, info) => {
if(err){
console.error(err)
return next(err)
}
if(info){
return res.status(401).send(info.reason);
}
return req.login(user, async(loginErr)=>{
if(loginErr) {
console.error(loginErr)
return next(loginErr)
}
return res.status(200).json(user)
})
})(req, res, next)
})
router.post('/', async (req, res, next) => {
try {
const exUser = await User.findOne({
where: {
email: req.body.email,
}
});
if (exUser) {
return res.status(403).send('이미 사용 중인 아이디입니다.');
}
const hashedPassword = await bcrypt.hash(req.body.password, 12);
await User.create({
email: req.body.email,
nickname: req.body.nick,
password: hashedPassword,
});
res.status(201).send('ok');
} catch (error) {
console.error(error);
next(error); // status 500
}
})
router.get('/', (req, res, next) => {
res.send('유저 페이지')
})
module.exports = router;const passport = require('passport')
const local = require('./local')
const { User } = require('../models')
module.exports = () => {
passport.serializeUser((user, done) => {
done(user.id)
})
passport.deserializeUser(async (id, done) => {
try{
const user = await User.findOne({ where: { id } })
done(null, user)
}catch(error){
console.error(error)
done(error)
}
})
local();
}const passport = require('passport')
const { Strategy: LocalStrategy } = require('passport-local')
const bcrypt = require('bcrypt')
const { User } = require('../models')
module.exports = () => {
passport.use(new LocalStrategy({
usernameField: 'email',
passwrodField: 'password',
}, async (email, password, done) => {
try {
const user = await User.findOne({
where: { email }
})
if (!user) {
done(null, false, { reason: '존재하지 않는 이메일 입니다!' })
}
const result = await bcrypt.compare(password, user.password)
if (result) {
return done(null, user)
}
return done(null, false, { reson: '비밀번호가 틀렸습니다.' })
} catch (error) {
console.error(error);
return done(error);
}
}));
}const express = require('express');
const postRouter = require('./routes/post')
const userRouter = require('./routes/user')
const db = require('./models');
const { urlencoded } = require('express');
const app = express();
const cors = require('cors')
const passportConfig = require('./passport');
const passport = require('passport');
const session = require('express-session')
const cookieParser = require('cookie-parser')
const dotenv = require('dotenv')
dotenv.config();
db.sequelize.sync()
.then(() => {
console.log('db 연결성공')
})
.catch(console.error)
passportConfig();
app.use(cors({
origin: '*'
}))
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use(cookieParser('nodebirdsecret'))
app.use(session({
saveUninitialized: false,
resave: false,
secret: process.env.COOKIE_SECRET
}))
app.use(passport.initialize())
app.use(passport.session());
app.get('/', (req, res) => {
res.send('hello express')
})
app.get('/api', (req, res) => {
res.send('hello express')
})
app.get('/api/posts', (req, res) => {
res.json([
{ id: 1, content: 'hello' },
{ id: 2, content: 'hello1' },
{ id: 3, content: 'hello2' },
]);
});
app.use('/post', postRouter)
app.use('/user', userRouter)
app.listen(3065, () => {
console.log('서버 실행중!!')
});
회원가입 로직은 잘 작동되는데 로그인기능이 안돼는 코드 한번 봐주실수 있으실까요? 201통신이 하나 오는건 또 무엇인지... 500으로 오류가 나오더라구요 그 다음에
답변 1
0
서버 에러메시지를 보여주세요. 204는 cors는 성공했다는 겁니다.
0
아 선생님 해결했습니다. 감사합니다.
passport.deserializeUser(async (id, done) => {
try{
const user = await User.findOne({ where: { id } })
done(null, user)
}catch(error){
console.error(error)
done(error)
}
})여기서 done 보낼때 null 값을 빼 먹었더라구요 감사합니다~!!
0
선생님 죄송합니다 궁금한게 좀 많아서요 ㅠㅠ
useEffect(() => {
if(!(me && me.id)){
Router.push('/')
}
}, [])로그인하지 않으면 메인화면으로 넘어가는 기능 부분인데 여기서 왜 me && me.id 까지 묶어 주나요? 그냥 me만 확인하면 되는것 아닌가요?
넥스트 버젼 질문
0
90
2
로그인시 401 Unauthorized 오류가 뜹니다
0
104
1
무한 스크롤 중 스크롤 튐 현상
0
198
1
특정 페이지 접근을 막고 싶을 때
0
117
2
createGlobalStyle의 위치와 영향범위
0
103
2
인라인 스타일 리렌더링 관련
0
98
2
vsc 에서 npm init 설치시 오류
0
159
2
nextjs 15버전 사용 가능할까요?
0
166
1
화면 새로고침 문의
0
129
1
RTK에서 draft, state 차이가 있나요?
0
164
2
Next 14 사용해도 될까요?
0
455
1
next, node 버전 / 폴더 구조 질문 드립니다.
0
359
1
url 오류 질문있습니다
0
218
1
ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out
0
391
1
sudo certbot --nginx 에러
0
1295
2
Minified React error 콘솔에러 (hydrate)
0
481
1
카카오 공유했을 때 이전에 작성했던 글이 나오는 버그
0
257
1
프론트서버 배포 후 EADDRINUSE에러 발생
0
341
1
npm run build 에러
0
526
1
front 서버 npm run build 중에 발생한 에러들
0
399
1
서버 실행하고 브라우저로 들어갔을때 404에러
0
351
2
css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.
0
291
1
팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.
0
251
2
해시태그 검색에서 throttle에 관해 질문있습니다.
0
207
1





