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


10

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

이상적으로는 Wget 또는 cURL 과 같은 도구를 사용 하여 페이지를 가져오고 싶습니다 . 그래도 로그인을 통과하는 방법을 모르겠습니다. Firefox를 통해 로그인하고 관련 쿠키를 내보내고 --load-cookies옵션을 통해 Wget으로 가져올 수 있다고 언급하는 제안을 보았습니다 . 예를 들어 herehere . 방금 로그인하면 작동하지만 잠시 후에는 작동하지 않습니다. 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.