개발하고 싶은 초심자
3-3. 220607 소셜 로그인을 위한 클라이언트와 서버 연결(2), 마이페이지 에러 잡기 본문
Project in Codestates/Final Project
3-3. 220607 소셜 로그인을 위한 클라이언트와 서버 연결(2), 마이페이지 에러 잡기
정새얀 2022. 6. 7. 10:571. 서버에서 토큰 받아오기
토큰을 받아오고 카카오 로그인을 한 사용자의 정보를 받아오는 것 까지는 되는데 데이터베이스에 저장이 되지 않으면서 결과적으로는 제대로 로그인이 되지 않는 것 같아 보였다.
처음 썼던 코드에서는
const { userEmail, profile } = kakaoUserInfo.data.kakao_account;
const userInfo = await users.findOne({
where: { userEmail }
});
if(!userInfo) {
const newUserInfo = await users.create({
userEmail: userEmail,
userName: profile.nickname
});
}
findOne과 create메소드를 사용하여 하나씩 단계를 밟아나갔는데 이 부분에서 제대로 넘어가지도 않고 하나로 묶을 수 있을 것 같아 findOrCreate메소드로 코드를 변경했다.
데이터베이스에 카카오로 로그인한 사용자를 구분해주기 위해 kakaoId 컬럼에 데이터가 저장되도록 만들었다.
그랬더니 코드가 정상 작동되면서 소셜 로그인에 성공할 수 있었다.
2. 마이페이지에서 userId undefined 에러 고치기
클라이언트에서 로그인 후 마이페이지에 들어가면 userId값이 undefined로 뜨면서 서버 연결이 끊기는 에러가 발견됐다.
아예 코드를 바꿔서 작성해봤다.
// 원래 작성했던 코드
const { userName } = req.query;
const uploads = await posts.findAll({
attributes: ['title', 'content', 'image'],
include: [
{
model: users,
},
],
where: { userName },
order: [['createdAt']],
});
새로 작성한 코드는 .then((data)) => {} 안에 map을 활용하여 회원정보를 받아오는 방식으로 해결했다.
'Project in Codestates > Final Project' 카테고리의 다른 글
4-2. 220610 전체 게시글 조회 및 마이페이지에서 사용자 정보 조회(2) (0) | 2022.06.10 |
---|---|
4-1. 220608 전체 게시글 및 마이페이지 정보 조회하기, IAM 계정을 이용한 AWS 배포(1) (0) | 2022.06.08 |
3-2. 220606 소셜 로그인을 위한 클라이언트와 서버 연결(1) (0) | 2022.06.06 |
3-1. 220602 소셜 로그인을 위한 포스트맨 요청 및 응답 확인하기 (0) | 2022.06.02 |
2-6. 220601 사용자 정보 가져오기 (0) | 2022.06.01 |
Comments