2010-03-16 5 views
2

저는 현재 Contact Importer 웹 앱 (PHP)에서 작업 중이므로 Gmail, Yahoo 등의 사용자 계정에서 이메일 주소를 가져 와서 악의적 인 목적으로 사용할 수있게 될 것입니다. 장난 스럽지만 내 웹 앱은 매우 친숙합니다.Google 연락처 API - 리디렉션 없음

나는 Google에서 시작할 것이라고 생각했습니다. 필자는 프로그래머가 사용자의 연락처에 액세스 할 수있게 해주는 Google Contacts API라는 환상적인 작은 API를 발견했습니다.

몇 시간의 고민과 함께 엿 같은 코드를 던지면서 나는 몇 개의 도로 블록을 만났습니다.

나는 사용자가 내 웹 사이트에 Gmail에 대한 사용자 이름과 암호를 제공하고 내 코드를 가질 수있는 방법이 있나요이없이 연락처를 를 검색하는 구글 로그인 페이지로 불쾌한 재 : 내 주요 질문은 이것이다? 그것은 일종의 유적 웹 애플 리케이션의 전체 흐름.

나는 AuthSub을 조사해 보았다.하지만 그 잡은 것은 당연히 사용자를 액세스 토큰을 얻기 위해 리디렉션해야한다는 것이다. OAuth가 이처럼 똑같은 모습을 보일 것 같습니다.

내가 가진 희망의 한 가지 방법은 ClientLogin 인증 방법입니다. 다시 말하지만 캐치가 있습니다. 때로는 Google이 인증 토큰 대신 CAPTCHA를 표시합니다. 다시 말하지만 사용자 흐름이 망가졌습니다.

트위터의 친구들이 잘 작동한다는 것을 알았습니다. 아무도 그들이 어떻게하는지 압니까?

감사합니다.

+0

3 다리 인증 만하면됩니다. 이것은 업계가 움직이는 방식 인 것 같습니다. –

답변

7

나는 당신이 버그가 아니라 기능을 확인했다고 생각합니다. OAuth의 핵심은 사용자가 자신의 것과 같은 제 3 자 사이트에 비밀번호를 입력하지 못하도록하는 것입니다. 이렇게하면 Google 로그인 페이지를보고있을 때 자신의 Google 비밀번호를 입력하는 방법 만 배우고, 비밀번호를 저장하고 모든 이메일을 읽는 데 사용하십시오.

웹 응용 프로그램의 흐름이 약간 중단되지만 OAuth는 일반적으로 큰 혼란을 일으키지 않도록 콜백을 제공합니다. 교환 할 때 사용자는 더 안전하게 느낄 수 있으며 사용자 암호를 저장 (및 처분)해야하는 문제를 피할 수 있습니다.

간단히 말해서, 나는이 문제를 해결할 수 없을 것이라고 생각합니다. 트위터가 현재 허용하고있는 사실 ("사용자 인증", 사용자 이름과 암호가 직접 전송되는)은 사실이지만 deprecated by this summer이 될 예정입니다.