deserialize 내부에서 db.User.findOne({..)}
245
작성한 질문수 4
passport.deserializeUser(async (id, done) => {
try {
const user = await db.User.findOne({
where: { id }
});
return done(null, user); // 이 때 req.user에 유저 정보 저장
} catch (e) {
console.error(e);
return done(e);
}
});
local();
};
deserializeUser 의 callback 함수에서 done 으로 넘겨지는 user 데이터는 findOne({ where: {id}) 로 조회된 데이터인데요.
이 데이터에는 Followings, Followers 프로퍼티가 포함되지 않습니다. 그러다보니, 5-14에서 발생했던 것 처럼, front/component/AppLayout/UserPorfile 내부 아래 코드에서 에러가 발생하게 됩니다.
import React, { useCallback } from 'react';
import { Card, Avatar, Button } from 'antd';
import { useSelector, useDispatch } from 'react-redux';
import { LOGOUT_REQUEST } from '../../reducers/user';
const UserProfile = () => {
const { me } = useSelector(state => state.user);
const dispatch = useDispatch();
const onLogout = useCallback(() => {
dispatch({
type: LOGOUT_REQUEST,
});
}, []);
return (
<Card
actions={[
<div key="twit">
짹짹
<br />
{me.Posts.length}
</div>,
<div key="following">
팔로잉
<br />
{me.Followings.length}
</div>,
<div key="follower">
팔로워
<br />
{me.Followers.length}
</div>,
]}>
<Card.Meta
avatar={<Avatar>{me.nickname[0]}</Avatar>}
title={me.nickname}
/>
<Button onClick={onLogout}>로그아웃</Button>
</Card>
);
};
export default UserProfile;
이를 해결하기 위해서는 deserializeUser 에서 login 라우터에서 처럼 데이터를 조회해서 req.user에 저장해야 할 것 같습니다.
아래 코드와 같이 말이죠
- deserializeUser
passport.deserializeUser(async (id, done) => {
try {
const user = await db.User.findOne({
where: { id },
include: [
{
model: db.Post,
as: 'Posts',
attributes: ['id']
},
{
model: db.User,
as: 'Followings',
attributes: ['id']
},
{
model: db.User,
as: 'Followers',
attributes: ['id']
}
],
attributes: ['id', 'nickname', 'userId']
});
return done(null, user); // 이 때 req.user에 유저 정보 저장
} catch (e) {
console.error(e);
return done(e);
}
});
local();
};
이에 대해 어떻게 생각하시나요?
답변 1
next 10 이상에서는 redux dev tool 구동이 안되나요?
0
281
1
세션 갱신 문의 건
0
509
7
배포 진행 후 Highlight updates components render 표시
0
452
1
똑같은 기능을 하는 테이블
0
466
4
관계형
0
323
2
프론트 서버를 이용하지 않는경우
1
305
3
인피니트 스크롤링 사용시 오류
0
281
0
계속 이런에러가 떠서 해결하기는 했는데 어떤 의미인지 모르겠습니다.
0
438
2
req.user가 언제 생성되나요??
0
334
2
Cannot read property 'id' of null 에러
0
336
1
리트윗한 게시글 불러오는 sequelize
0
255
1
result.data에서 images인 이유
0
285
2
takeLatest에 대한 질문입니다.
1
345
2
프론트에서 express를 사용하지 않을때 동적라우팅
0
508
6
getInitialProps가 클라이언트에서 수행되는 이유?
0
264
1
리로드하면 팔로우 언팔로우 값이 초기화 되는 문제입니다.
0
449
2
스타일드 컴포넌트와 className을 통한 스타일 적용의 차이에 대해 궁금합니다
0
587
2
할인 쿠폰 사용이 안되는되요 (848-f9af83f183e3)
0
369
1
nodejs mvc 패턴
0
984
4
사용하고 보니, 람다 구성이 궁금합니다!
0
271
1
제로초님
0
449
1
새로고침 로그인 풀림 문제.
0
251
1
안녕하세요. 강의 너무 감사합니다
0
164
1
제로초님
0
175
1





