Wget과 같은 명령 줄 도구를 사용하여 OpenID 사이트에 로그인하려면 어떻게해야합니까?


10

특히 다양한 Stack Exchange 사이트의 사용자 프로필에서 특정 페이지를 다운로드하고 싶습니다. 그러나 cron명령 줄과 구문 분석 가능한 형식으로 작업을 사용하여 자동으로 수행하고 싶습니다 . 나는 이것을 위해 Linux를 사용하는 것을 선호하지만 필요한 경우 Mac 또는 Windows 컴퓨터에 액세스 할 수 있습니다.

이상적으로는 Wget 또는 cURL 과 같은 도구를 사용 하여 페이지를 가져오고 싶습니다 . 그래도 로그인을 통과하는 방법을 모르겠습니다. Firefox를 통해 로그인하고 관련 쿠키를 내보내고 --load-cookies옵션을 통해 Wget으로 가져올 수 있다고 언급하는 제안을 보았습니다 . 예를 들어 here 와 here . 방금 로그인하면 작동하지만 잠시 후에는 작동하지 않습니다. ID 토큰을 새로 고쳐야하기 때문에 추측합니다.

따라서 SU에 로그인하고 쿠키를 내 보내면 바로 할 수 있습니다.

wget --load-cookies cookies.txt \
  https://superuser.com/users/151431/terdon?tab=responses

몇 분 후 404 오류가 발생합니다.

wget -O ~/stack/$(date +%s) --load-cookies ~/cookies.txt \
   https://superuser.com/users/151431/terdon?tab=responses

--2013-08-06 04:04:14--  https://superuser.com/users/151431/terdon?tab=responses
Resolving superuser.com (superuser.com)... 198.252.206.16
Connecting to superuser.com (superuser.com)|198.252.206.16|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-08-06 04:04:15 ERROR 404: Not Found.

명령 줄에서 OpenID 지원 웹 사이트에 자동으로 로그인하려면 어떻게해야합니까?


추신. 내 질문은 실제로 해당 웹 페이지의 실제 세부 사항이 아니라 명령 줄 측면에 관한 것이므로 웹 응용 프로그램보다 여기에 더 적합하다고 생각합니다. 모든 솔루션이 모든 OpenID 사이트에 적용될 수 있다고 생각합니다 .


3
SE API ( api.stackexchange.com )에서 원하는 정보를 제공하는지 확인 했습니까? 이것은 프로그래밍 방식으로 데이터에 액세스하는 공식적인 방법이며 OAuth를 사용하여 인증합니다.
— 중화

@ heavyd 그래, 나는 이것을 위해 API를 탐구 할 필요가 없기를 바랐다. 그게 내가해야 할 유일한 방법이라면. 얼핏 보면 API를 통해 로그인 프로세스를 자동화 할 수있는 것처럼 보이지 않습니다 . 내가 직접 입력하지 않아도되는 방식으로 인증 할 수 있는지 알고 있습니까? 인증이 필요한 데이터를 얻기 위해 문서를 올바르게 이해하면 수동으로 로그인해야합니다.
— terdon

실제로 SE API를 사용하지는 않았지만 다른 OAuth 구현에서는 한 번 로그인을 사용했으며 무기한 좋은 토큰을 받았습니다.
— 14:26에

답변:


1

쿠키는 너무 자주 새로 고치기 때문에 할 수 없습니다. 이것은 보안상의 목적으로 수행 할 수있는 유일한 방법은 이미 수행 한 방법입니다. 적어도 내 이해에서.


방금이 질문이 정말 오래된 질문 인 것을 보았습니다 .... 죄송합니다.
— Maarten

-3

(재) 매뉴얼 페이지 읽기 wget에 대한 설명에서와 모양을 --user하고 --password플래그.

암호를 명령 줄 인수로 전달하는 것은 권장되지 않습니다 ps. 실행하는 사람은 누구나 볼 수 있습니다. 가장 좋은 방법은 원시 암호를 어디에도 저장하지 않는 것이지만 다음으로 가장 좋은 방법은 소유자 만 읽을 수있는 파일에 암호를 저장하는 것입니다.


3
언급 한 플래그는 HTTP 기반 인증 (기본, 다이제스트 등)을위한 것입니다. SE는 인증에 이들을 사용하지 않습니다. 인증을 위해 타사 OpenID 공급자를 사용합니다.
— 중화
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.