인프런 커뮤니티 질문&답변

d\/b님의 프로필 이미지
d\/b

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

카카오 로그인 전략에서 res 사용하기

작성

·

135

0

안녕하세요.

카카오 로그인 전략 알려주신대로는 해서 구현을 성공 했습니다.

근데 제 플젝에 맞게 조금 수정을 하고 싶은데 미들웨어 확장이 가능한지 질문 드립니다.

module.exports = () => {
passport.use(
new KakaoStrategy(
{
clientID: process.env.KAKAO_ID,
callbackURL: "/user/kakao/callback",
},
async (accessToken, refreshToken, profile, done) => {
try {
const exUser = await User.findOne({
where: { snsId: profile.id, provider: "kakao" },
});
if (exUser) {
done(null, exUser);
}
else {
if( 로컬 회원가입과 연동이 안되어있으면 ){
//리다이렉트 시켜서 이메일과 닉네임 받아오기
//닉네임과 이메일 받기
// 여기서 이메일과 닉네임을 받는 폼으로 이동시켜 데이터 받은 후 다음 단계로 넘어가기
// res.redirect 를 쓰려했는데 res가 없어서 미들웨어 확장이 가능한지 질문드립니다.
}
const newUser = await User.create({
email : 로컬 이메일
kakaoEmail: profile._json && profile._json.kakao_account.email,
nick : 로컬 닉네임
kakaoNick: profile.displayName,
snsId: profile.id,
provider: 'kakao',
});
console.log("newUser 생성 완료!", newUser);
done(null, newUser);
}
} catch (error) {
console.error(error);
done(error);
}
}
)
);
};

제가 원하는 로그인 과정을 정리하자면 다음과 같습니다.

회원가입이 안된 상태의 유저가 

1. 카카오 로그인하기 클릭

2. 카카오 이메일 비밀번호 입력

3. 로컬 이메일과 닉네임 없으면 그거 받는 폼으로 이동

4. 로컬 이메일 닉네임 입력 받고나면 카카오 로그인 전략(+ 로컬 이메일 닉네임 추가해서 db 생성) 그대로 진행

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

그 경우는 kakao sdk를 쓰는게 낫지 않나 생각됩니다. 아니면 카카오 로그인 이후 첫 로그인에 이메일과 비밀번호를 받거나요.

d\/b님의 프로필 이미지
d\/b

작성한 질문수

질문하기