프로그래밍/블로그

[티스토리 스킨] 로그인 체크

당근천국 2017. 1. 21. 16:00

인터넷을 뒤져보니 티스토리 로그인 체크는 티스토리 툴바(tistory toolbar)를 체크하는 방법 아니면 모든 페이지에 일관되게 체크할 수 있는 방법이 없는거 같습니다.

 

기존에 많은 분이 만든 코드가 있지만 마음에 드는 게 없어서 만들어 봅니다 ㅎㅎㅎ

 

 

0. 티스토리 툴바 표시

티스토리에서 '2차주소'를 사용할 때 '메뉴바 감추기'라는 옵션이 있는데 이 옵션이 체크되어 있으면 툴바 자체가 바인딩 되지 않습니다.

 

관리 > 기본 정보 > 주소설정

에서 확인 가능합니다.

 

 

툴바를 화면에 표시하고 싶지 않다면 css를 이용해야 합니다.

css에 다음 코드를 추가합니다.

 

1
2
3
4
/* 티스토리 메뉴바 가리기*/
#tistorytoolbarid {
    display:none;
}
cs

 

 

1. 티스토리 툴바 분석

 

티스토리 툴바는 로그인했을 때와 하지 않았을 때만 체크가 가능합니다.

아래 스샷을 봅시다.

 

 

 

로그인한 상태로 다른 사람의 블로그에 가도 툴바의 내용이 같은 것을 알 수 있습니다.

 

결국 로그인한 상태라면 자신의 블로그인지 확인이 안 됩니다.

방법은 주소를 확인해서 마이메뉴에 있는 주소들과 맞는지 확인해야 하죠.

 

다행히 'My'에는 로그인한 계정의 블로그 주소가 들어있습니다.

여러 개라면 여러 개가 표시됩니다.

 

 

 

'My' 메뉴는 아래와 같이 구성되어 있습니다.

 

 

 

2. 로그인 체크 구현

위에서 분석한 내용을 정리해보면

 

1) 로그인 상태는 'My' 메뉴가 있는지로 확인할 수 있다.

2) 자신의 계정인지 확인해 보려면 'My' 메뉴의 리스트를 지금 주소와 비교해야 한다.

 

이 내용을 코드로 만들어 봅시다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*
티스토리의 로그인 상태를 확인 합니다.
return : 0 = 체크전
            1 = 로그아웃
            2 = 로그인
            3 = 내 블로그
*/
function TistoryLoginCheck() {
    var returnLoginState = 0;
 
    //my메뉴를 찾는다.
    var arrMyBlog = $("#tistorytoolbarid .tt_menubar_list_blogmenu .tt_menubar_link");
 
    if (1 < arrMyBlog.length) {//my메뉴가 있다.
        //일단 로그인은 성공 했다.
        returnLoginState = 2;
 
        //현재 페이지의 호스트를 받아온다.
        var sHost = $(location).attr("host");
 
        //주소와 확인한다.
        arrMyBlog.each(function (index, element) {
            if (sHost == element.hostname) {//호스트 네임이 같다.
                //내블로그다.
                returnLoginState = 3;
                return false;
            }
        });
    }
    else {//my메뉴가 없다.
        //로그인 되있지 않다.
        returnLoginState = 1;
    }
 
    return returnLoginState;
}
cs

 

 

제이쿼리(jquery) 코드입니다.

 

"#tistorytoolbarid .tt_menubar_list_blogmenu .tt_menubar_link"로 엘리먼트(element)를 검색하면 자신의 'My' 리스트가 나옵니다.

이 'My' 리스트의 주소의 호스트를 추출해서 지금 있는 주소와 비교합니다.

'My' 리스트에 지금 있는 주소가 호스트 주소와 같은 것이 있다면 자신의 블로그라는 뜻입니다.

 

마무리

이 정도는 티스토리에서 api로 제공하면 좋을 텐데 말이죠.

 

반응형 스킨을 만들어보니 필요한 게 너무 많더라고요-_-;;;;;;

일단 최대한 자바스크립트로 때우긴 했는데....

좋은 아이디어가 아닌듯한데 방법이 없네요 ㅎㅎㅎ