5

Google OAuth を使用して Phonegap アプリに Google ログインを統合する作業を行っています。Phonegap を使用してアプリを作成しているため、アプリのクライアント ID を作成するときに、「インストール済みアプリケーション」を選択し、次にアプリケーション タイプを「その他」として選択する必要があります。

urn:ietf:wg:oauth:2.0:oobこれにより、「 」と「 」などの 2 つのリダイレクト URI が得られますhttp://localhosturn:ietf:wg:oauth:2.0:oobユーザーがコードをコピーしてアプリに戻す必要があるため、「 」は使用しません。私が持っている他のオプションは、localhost にリダイレクトすることです。

ここでの問題は、iPad を使用しているときに URL を localhost にリダイレクトするにはどうすればよいかということです。別のリダイレクト URI を使用しようとしましたが、Google で使用できません。ローカルホストへのリダイレクト(またはいくつかのポート番号の追加)にのみ固執しますが、これは他にありません。

これに関する回避策はありますか?このタスクを達成する方法はありますか? ハマった。助けてください。

4

2 に答える 2

4

Rewrite Rules も使用できます。

たとえば、Google に対して次のコールバックが必要です。http://local.dev/users/login-google

だから私はGoogleコンソールでこのURLを設定しました:http://localhost/JUMP/local.dev/users/login-google

そしてApacheでは、単純なリダイレクト:

RewriteEngine  on
RewriteRule    ^JUMP/(.+)$   http://$1 [R,L]
于 2014-05-07T09:49:34.993 に答える
3

私は最近同じ問題を抱えています。また、Twitter API についても把握する必要がありました (回答はこちら)。

Google の場合、問題を解決する 2 つの方法を見つけました。

  1. Google は localhost コールバック URL を受け入れます。たとえば、xampp サーバーを使用していて、リダイレクトがその下C:\xampp\htdocs\nozzle\callbacks\google.phpに保存されている場合、リクエスト (およびGoogle API コンソール) で指定するリダイレクトは次のようになります: http://localhost/nozzle/callbacks/google.phpPromblem Solved.
  2. 仮想ホスト サイトで開発している場合: ライブ サイト (または localhost フォルダー構造のどこかに) にリダイレクトして、Google API と通信し、そのデータをシリアル化し、ローカル仮想ホストの URL に送信します。

オプション 2 については、さらに説明が必要です。内訳は次のとおりです。

  • 仮想ホストでローカルに開発しています。アプリのデータが localhost フォルダー ( http://myapp.dev) にありません。そのため、vhost でローカルに開発を行いながら、Google API にリクエストを送信できる別のソリューションが必要でした。
  • セットアップ: 最初の呼び出しはhttp://myapp.dev/から行われますが、リダイレクトにはライブ サーバー アドレスを使用します。ユーザーから承認されると、Google はライブ サイトにリダイレクトし、API への追加の呼び出しを行います。この情報は (再びライブ サイトに) 返され、その情報をシリアル化し、?data= を追加して要求としてhttp://myapp.dev/callbackにリダイレクトし、その呼び出しの最後にシリアル化されたデータを配置します。次に、vhost サイトに送信され、$_REQUEST['data'] でデータを取得し、シリアル化を解除して、準備完了です。
  • これは大変な作業のように思えるかもしれませんが、私と私のチームにとって、稼働する準備が整うまでローカルで作業を続けることには価値があります。

また、ライブ ローカル アドレスではなく、ローカル ホスト アドレスを介して同じプロセスを実行できると思いますが、テストしていません。しかし、ライブ サイトでそれを行う場合、チーム全体がローカルの仮想ホストから同じ要求を行うことができます。http://myapp.dev

脚注: socialmedia-oauth-login toolGoogle API にアクセスするために を使用しています。

于 2013-06-04T18:20:15.153 に答える