치지직/치지직.개발자모드.

오토핫키로 쿠키값 수정 / 변경 네이버 로그인 상태 체크하기

몽브르 2024. 3. 28.
 

치지직 오토핫키로 하고싶은게 되려는지....

치지직 관련 개발? 치지직이 아직은 오픈API를 내놓지도 않고 내놓을 계획도 없다고 함에도 불구하고 많은 시청자들과 개발자들이 바쁘게 이곳저곳 뜯어보고 계시네요 ㅋㅋ 꽤 다양한 정보도 확

grandvert.tistory.com

지난번에 GET을 통해서 페이지에 있는 정보를 크롤링해오는 것까지는 진행했는데 로그인 세션이 필요한 부분에서 꽉 막혔었습니다. NID-AUT / NID-SES 두 개의 쿠키값을 활용해서 로그인 상태임을 보여줘야 얻을 수 있는 정보들이 몇 가지 있었습니다.

 

 

 

진행하기 전에 우선 원하는 페이지에 접속한 후 크롬에서 F12 -> (상단) 애플리케이션 -> (좌측) 쿠키를 눌러주면 쿠키 값을 확인할 수 있습니다. 특히 NID-AUT / NID-SES 같은 경우 로그인해야만 확인되는 값이니 로그인하고 확인하셔야 합니다. 아이디 패스워드를 몰라도 이걸 가지고 네이버에 로그인하는 게 가능하니 유출되지 않도록 절대주의하셔야 합니다.

 

 

쿠키값을 복사해서 Json 파일로 저장해 줬습니다.

 

 

; JSON 파일을 읽어오는 함수
ReadJsonFile(filePath) {
    FileRead, jsonData, % filePath
    return jsonData
}

cookies()	{
; JSON 파일 경로 설정
    jsonFilePath := "cookies.json"
    cookiesJson := ReadJsonFile(jsonFilePath)
	cookiesBody := Json.Load(cookiesJson)
	return cookiesBody
}
cookies := cookies()

쿠키값을 저장한 Json파일을 오토핫키에서 불러와서 배열상태로 저장해 cookies라는 변수에 넣어놨습니다.

 

 

 

mo_accessToken(chatChannelId, cookies) {
url := "https://comm-api.game.naver.com/nng_main/v1/chats/access-token?channelId=" chatChannelId "w&chatType=STREAMING"

    httpRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
	headers := "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
	httpRequest.Open("GET", url)
    httpRequest.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36")
	for key, value in cookies {
        httpRequest.SetRequestHeader("Cookie", key "=" value, false)
    }
	httpRequest.Send()
	
	
    responseBody := httpRequest.ResponseText
	
	jsonObj := Json.Load(responseBody)
	testToken := jsonObj
	
    return testToken
}


acexToken := fetch_accessToken(chatChannelId, cookies)
    accessToken := acexToken["content"]["accessToken"]
	extraToken := acexToken["content"]["extraToken"]
	realNameAuth := acexToken["content"]["realNameAuth"]

엑세스 토큰을 가져오는 과정입니다. 이전글에서 chatChannelId 확인하는 법을 보시면 저건 쉽게 획득할 수 있는 값입니다. 문제는 쿠키에서 얻은 NID-AUT / NID-SES 값을 웹페이지로 보내고 로그인된 상태에서 확인할 수 있는 accessToken을 가져와야 합니다.

 

 

이제 보니까 헤더를 몇 번씩 써놨네요 ㅋㅋㅋ 어쨌든 돌아가니 나중에 수정하겠습니다. GET으로 url에 접근하고 배열에 있는 키와 밸류를 Cookie에 하나씩 집어넣어 줍니다. 그리고 요청해서 돌아온 응답을 텍스트로 받아서 다시 배열로 바꿔주고 리턴해줍니다. 오토핫키는 리턴값을 하나씩 밖에 못 받는 똥멍충이니까 밖에서 다시 값을 나눠줍니다.

 

 

액세스토큰, 엑스트라토큰, 로그인상태 확인까지 정보를 확인할 수 있습니다.

 

 

 

이제 원하는 정보를 가져오는 건 해결되었으니 웹소켓을 통해서 채팅과 연결하는 부분을 진행해야겠습니다. 하나씩 풀려가긴 하는데 머리가 지끈지끈하네요 ㅋㅋㅋ

반응형

추천 글