4

仮定する:

  1. Google App Engine のプロジェクト (つまり、example.appspot.com) にリダイレクトするWeb サイトhttp://www.example.comがあります。
  2. ユーザー間の通信を SSL (つまりhttps://example.appspot.com )経由で渡したい場合。と
  3. ユーザーに表示されるドメインを *://www.example.com (つまり、https://example.appspot.comではない) にする必要があります。

Google の Appspot HTTPS サポートがhttps://example.appspot.comでのみ機能することを考えると(つまり、 https ://www.example.com を GAE で設定することはできません)、Ajax ソリューションが必要です。

  1. http://www.example.comは、http 経由で HTML と Javascript を提供します
  2. Ajax リクエストは SSL 経由でhttps://example.appspot.comに送信されます

私の質問/懸念は次のとおりです: http://www.example.comにログインしたユーザーが (Google のusers APIを介して) 認証資格情報を Ajax 経由でhttps://example.appspot.comに確実に渡すにはどうすればよいですか?

これは、同一オリジン ポリシー (Google Users API にとっては問題になる場合とそうでない場合があります) に違反しているように思われます。コム?

感想、コメント、意見は大歓迎です。

ありがとうございました。

ブライアン

4

4 に答える 4

2

JSONPを使用して回避することができます。ただし、JSONP には、JSON が XHR 呼び出しを行うときのように、非常に優れたエラー回復機能がありません。

于 2009-08-07T07:45:17.430 に答える
2

両方のサイトが協力している場合、同じオリジンを回避する方法があります。たとえば、この投稿を参照してください。ただし、特定の要件に対してどの手法が機能するかは、試行錯誤によってのみ明らかになります (ユーザーがセキュリティ保護をどれだけ厳密に設定しているかによって異なります)。サーバー側の実装と同様に、ブラウザーで)。

于 2009-08-06T18:03:32.850 に答える
1

example.appspot.com は example.com と Cookie を共有しません。example.appspot.com にもサインインさせなければ、ユーザーを特定することはできません。

もちろん、example.appspot.com で Google 認証を完全に破棄して、独自のスキームを実装することもできます。作成した AJAX リクエストに署名とユーザー名を追加し、アプリ エンジン アプリでその署名を検証できます。署名が有効な場合は、渡されたユーザーを認証済みユーザーとして受け入れ、ログインしたふりをします。

于 2009-08-10T07:53:32.550 に答える
1

フレームを使用する方がはるかに簡単ではないでしょうか? https://yourapp.appspot.com/のコンテンツを含む yourdomain.com から単一のフルサイズ フレームセットを提供します。

ただし、どちらのソリューションにも、保護されたサイトではなく、保護されていないサイトがユーザーに表示されるという問題があることに注意してください。

于 2009-08-07T07:43:52.223 に答える