2

PHPとJavascriptでGoogleIdentityToolkitを実装しようとしています

7つのケースを定義しました。コールバックURL:ログインURL:ユーザーステータスサインアップURL:ログアウトURL:ホームURL:忘れたURL:

とウィジェットとAPIキーを取得しました..そして私はグーグルによって提供された次の例と同じ機能を実行しようとしています

https://account-chooser.appspot.com/

Googleにログインを検証させるのに問題があります。私はverifyAssertion(phpのcurlで実行)または

window.google.identitytoolkit.notifyFederatedSuccess({ "email": "email@domain.com", "registered": true });

これが起こったことと私が抱えている問題です:グーグルには最初にキーアイコンでサインインを表示するこのウィジェットがあり、それをクリックしてから、グーグルアカウントまたはヤフーまたはあなたが使用するもの(この部分はすべてOK)を選択しますたとえば、Googleアカウントの場合、ポップアップが表示され、GITが魔法をかけ(コールバックURLにコールバックします)、コールバックの応答に応じて、ログインしたサイトアカウントまたはエラーにリダイレクトします。この場合、実際にはログイン済みとして自分のサイトアカウントにリダイレクトされますが、ウィジェットには実際にログインしていることが表示されません。グーグルのサンプルページとしてではありません..それはまだキーサインウィジェットを表示します...

私は何か摩耗したことをしていますが、それを修正する方法がわかりません...

ここにグーグルからのいくつかのより多くの参照があります。それは少し文書化されていません(createAuthUrl私はそれを使用していませんでした..何のためにあるのかわかりません)

http://code.google.com/apis/identitytoolkit/v1/reference.html

http://code.google.com/apis/identitytoolkit/v1/acguide.html 例のEasyRpServiceでverifyAssertionを実装しました。奇妙なのは、応答がNULLであり、HTTPエラーコードもNULLであるということです。 4xxまたは200

誰かがこれを実装しましたか?

4

1 に答える 1

1

ウィジェットは自動的に更新されません。次の 2 つのことを行う必要があります。

1) 認証後にログインしているユーザーを更新していることを確認します。ログイン後のホームページには、次のような JavaScript のスニペットが必要です。

<script type="text/javascript">
  var userData = {
    email: 'name@idp.com', // required
    displayName: 'User Name', // optional
    photoUrl: 'http://website.com/img/user.png', // optional
  };
  window.google.identitytoolkit.updateSavedAccount(userData);
</script>

これにより、ユーザーの詳細がブラウザーのローカル ストレージに確実に保存されます。これは、アカウント チューザーが次回のログイン時にユーザーの詳細を表示するために必要です。

さらに、ログインしたユーザーをウィジェットに表示するには、ウィジェットの初期化時に showSavedAccount を呼び出す必要があります。

<script type='text/javascript'>
  window.google.identitytoolkit.showSavedAccount("logged-in-user@domain.com");
  $("#navbar").accountChooser();
</script>
<div id="navbar"></div>
于 2011-12-09T18:33:31.853 に答える