dukDukz

21.05.24 kakao 로그아웃 본문

웹 개발/Node JS

21.05.24 kakao 로그아웃

헤일리_HJ 2021. 5. 24. 12:04

1. index.html

html에 이러한 링크를 만들고

 

2. server.js

라우터에 get 부분으로 이 링크를 받아주는 부분을 만든다.

app.get('/auth/kakao/unlink', authMiddleware, async (req,res)=>{
    const {session} = req;
    const {access_token} = session.authData.kakao;

    // 요청 - axios 비동기로 요청하기 (async 필요)
    // 카카오에게 접속을 종료하겠다는 것을 요청하겠다 - 그걸 unlink에 담는다
    // 요청 실패시를 대비해서 try catch 문을 사용했다.
    let unlink;
    try {
        unlink = await axios({  //Promise 객체를 unlink에 넘겨주고 
            method : "POST",
            url:"https://kapi.kakao.com/v1/user/unlink",
            headers:{
                Authorization :  `Bearer ${access_token}`
            }
        })
    } catch (error) {
        res.json("에러 error.data = ",error.data);
    }
    console.log("언링크 unlink.data = ",unlink.data);       
    // 이 값이 떨어진 이유는 이미 카카오 측에서는 우리 아이디를 로그아웃 or 회원탈퇴 완료
    // 나도 처리해줘야할게 있다  - session을 지워줘야 함 

    const {id} = unlink.data;

    // id가 일치하면 세션 지워주기
    if(session.authData["kakao"].id == id){
        delete session.authData;
    }

    res.redirect('/?msg=로그아웃 되셨습니다.')
})

 

확인을 위해

카카오 로그인 - 카카오 탈퇴 버튼을 눌러보면

이러한 alert 창이 뜬다

 

 

이 값이 떨어진 이유는 이미 카카오 측에서는 우리 아이디를 로그아웃 or 회원탈퇴 완료했다는 뜻이다.

 

이제 우리가 처리해줘야 할건 내 session에 있는 회원정보를 지워주는 것이다.