NID_AUT와 NID_SES 쿠키를 이용한 네이버 로그인 처리
네이버 웹툰 다운로더를 만들면서
19세 이상 인증이 필요한 웹툰을 다운로드를 구현하다가 막혔다.
로그인 처리가 되도록 해야하는데, ID 비밀번호를 입력하고 그걸 이용해서 로그인 처리를 할까도 생각해보았으나,
그리 좋은 방법은 아닌 것 같기도 하고, 네이버에서 세션을 어떻게 처리하고 있는지 확인해보기 위해서 확인도 해볼겸
네이버로 로그인 한 상태의 쿠키들을 확인하다가 NID_AUT와 NID_SES가 세션을 처리한다는 것을 알아내었다.
다음은 로그인 된 상태의 개발자도구에서 확인한 네이버의 쿠키이다.
위에서 확인할 사항은 NID_AUT, NID_SES의 쿠키값(Value)과 Domain이다.
현재 comic.naver.com 도메인으로 들어가 있는 상태이지만
위 두개의 쿠키는 comic.naver.com의 상위 도메인인 .naver.com으로 되어있다.
때문에 쿠키를 추가하거나, 코드를 작성할 때 위 사항을 이용하려면
- Domain 부분을 비워놓거나(이렇게 작성하면 현재 도메인인 comic.naver.com가 default로 들어간다.)
- comic.naver.com을 Domain에 집어넣거나
하면 안된다. 만약 .naver.com이 아닌 comic.naver.com이 도메인으로 들어가면 해당 쿠키를 집어넣어도 네이버에서 로그인된 것으로 처리하지 않는다.
아래는 EditThisCookie를 이용해 NID_AUT와 NID_SES를 수정하는 것이다.
동일한 블라우저에서 실행하면 이미 로그인 처리가 되어있기 때문에 크롬의 시크릿 창을 띄워서 들어갔다.
위와 같이 수정하고 초록색 V 표시된 버튼을 눌러 쿠키를 적용시킨다.
이렇게 하면 위와 같이 로그인이 된 것으로 처리되는 것을 볼 수 있다.
이 상태에서는 실제로 로그인 한 것 처럼 페이지를 이동해도 로그인된 상태가 유지된다.
다음은 실제 코드에 적용한 예시이다.