2012-03-20 5 views
7

PhoneGap 애플리케이션을 개발 중이며 OAuth2로 Google을 통해 로그인해야합니다. JavaScript를 통해 직접 가능합니까? JavaScript (및 jQuery)에 대한 경험이 거의 없습니다.PhoneGap 및 OAuth2

어떤 옵션이 있습니까? 나는 로그인을 처리하는 서버에서 호스팅 한 애플리케이션에 사용자 이름/비밀번호를 게시하는 성가신 대안을 생각해 냈습니다. 그런 다음 PhoneGap 앱은 인증에 성공했는지 서버에 요청해야합니다. 그러나, 나는 더 간단한 방법이 있기를 바랐다.

Google을 통해 PhoneGap 앱에 로그인하는 가장 좋은 방법은 무엇입니까?

+0

이 주제에 대한 리비의 튜토리얼은 아마 당신이 시작을위한 최고의 장소입니다 : http://www.mobiledevelopersolutions.com/home/start/twominutetutorials/tmt5p1 –

답변

8

나는 그것을 작동시킬 수 있었다! 나는 웹 검색을 몇 시간 만 마치면 대답을 찾기가 힘들어서 여기에 내 생각을 게시하고있다.

중요한 단계는 다음과 같습니다

  • 확인 ChildBrowser는
  • 설정 this tutorial
  • 에 설명 된대로 쿼리 문자열과 URL을 빌드 변경 페이지로 window.plugins.childBrowser.onLocationChange = function(fooUrl) { console.log(fooUrl); }
  • 을 듣고하는 기능을 제대로 작동 확인
  • URL에 ChildBrowser를 지정하십시오.
  • 사용자가 로그인하면 오 당신은 여전히이 작업을 수행하는 방법을 모르는 경우, fooUrl

에서 세션 토큰을 추출 this Android app를 보라. 은 (코드 많은있다, 그것은 압도적 인 보일 수 있습니다, 그래서 나는 최후의 수단으로 만이가는 것이 좋습니다) 구글이 직접 사용자 자격 증명을 처리하여 직접 인증을 수행 할 수 없습니다

4

. 대신 Google은 인증 프로토콜 (일반적으로 OAuth 2.0)을 수행하기를 원합니다. 다른 유명한 인증 프로토콜은 OpenID 1.0, 2.0, OpenID Connect, SAML 2.0, ID-FF 등입니다.이 프로토콜은 사용자를 ID 제공자 (이 경우 Google)로 리디렉션하고 어설 션 사용자를 신뢰하는 데 사용할 수 있습니다. Google과 같은 API를 사용하면 인증 후 모든 Google API에서 사용할 수있는 토큰을 제공하는 OAuth의 인증 기능을 활용하게됩니다.

는 상황이 일반적인 OAuth를 설정보다 약간 다릅니다. 귀하의 경우에는

브라우저는 통제 된 환경, 앱에, 당신은

    에게 는
  • 가 선택, 기본보기를 사용하여 Google 인증 엔드 포인트로 사용자를 리디렉션을 선택하면 열 수 있습니다 앱에서 어떤 상태도 잃지 않도록 ChildBrowser과 Google 인증 엔드 포인트가 있어야합니다.
  • 인증 끝점을 사용하여 Safari 또는 다른 브라우저를 열고 사용자 지정 스키마 처리기를 등록하여 인증 후 사용자를 다시 앱으로 리디렉션합니다.

이러한 예는 OAuth 2.0 사양에서 모호하게 언급되었지만 특정 사용 사례에서 가장 좋거나 최적 인 부분에 도움이되지 않습니다. 종종 최상의 옵션은 완벽하지 않습니다 (사용자 입장에서).

최근에 iOS 용 Phonegap 및 ChildBrowser로이 작업을 수행하는 방법에 대한 자습서를 작성했습니다.