2012-03-20 15 views
7

私はPhoneGapアプリケーションを開発しており、ユーザーはOAuth2でGoogleからログインする必要があります。これはJavaScript経由で直接可能ですか?私はJavaScript(とjQuery)の経験がほとんどありません。PhoneGapとOAuth2

どのようなオプションがありますか?私はサーバにホストしているアプリケーションにユーザ名/パスワードを投稿するという面倒な代替案を考えていましたが、ログインしたサーバは認証に成功したかどうかを確認する必要があります。しかし、もっと簡単な方法があることを期待していました。

のPhoneGapアプリのGoogle経由でログイン最良の方法は何ですか?

+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
  • ユーザーがログインすると、あなたができるようになりますトンそれでもthis Android appを見て、これを実行する方法がわからない場合はO fooUrl

からセッショントークンを抽出します。 は(コードのたくさんがあり、それは圧倒的に思えるかもしれないので、私は最後の手段としてのみ、このために行くことをお勧め)Googleはあなたが直接ユーザーの資格情報を処理することにより、直接認証を実行することはできません

4

。代わりに、Googleは認証プロトコル(通常はOAuth 2.0)を実行する必要があります。その他のよく知られている認証プロトコルについては、OpenID 1.0,2.0、OpenID Connect、SAML 2.0、ID-FFなどがあります。これらのプロトコルは、ユーザーをIDプロバイダ(この場合はGoogle)にリダイレクトし、 アサーションを使用して、ユーザーを信頼することができます。 GoogleのようなAPIでは、認証後にすべてのGoogle APIで使用できるトークンを提供するOAuthの認証機能を使用します。 PhoneGapのモバイルアプリをして

、物事は、典型的なOAuthのセットアップよりも少し異なっています。あなたのケースでは

ブラウザは、制御された環境で、あなたのアプリです、あなたは

  • 、メインビューを使用して、Google認証エンドポイントにユーザーをリダイレクトするように選択することができる開くように選択しChildBrowser Google認定エンドポイントを使用すると、アプリの状態が失われません。
  • Safariや他のブラウザを承認エンドポイントで開き、カスタムスキーマハンドラを登録して、認証後にユーザーをアプリケーションにリダイレクトします。

これらの例は、OAuth 2.0仕様では曖昧に言及されていますが、特定のユースケースで最適または最適なものは何もありません。多くの場合、可能な限り最良のオプションは完璧ではありません(ユーザーの観点から)。

私は最近、この作業をPhoneGapとChildBrowser for iOSで行う方法に関するチュートリアルを作成しました。