2

我正在尝试用 PHP 和 Javascript 实现 Google Identity Toolkit

我已经定义了 7 种情况 Callback Url: Login URL: User status Signup URL: Logout URL: Home URL: Forgotten URL:

和小部件并获得了一个api密钥..我正在尝试执行与google提供的以下示例相同的功能

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

我在让谷歌验证我的登录时遇到问题。我做错了我的verifyAssertion(用 php 中的 curl 完成)或

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

这就是发生的事情和我遇到的问题:谷歌有这个小部件,它首先向你显示一个带有钥匙图标的登录,你点击它,然后你选择一个谷歌帐户或雅虎或任何你使用的(这部分都可以)例如,您的 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 ..no 4xx 也不是 200

有人实施了吗?

4

1 回答 1

1

小部件不会自动更新。您需要做两件事:

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 回答