11

作为参考,这是我正在使用的 Google+ 流程:

https://developers.google.com/+/web/signin/server-side-flow

  1. 用户单击登录按钮。授权请求被发送到 Google 的 OAuth 服务器
  2. 为用户触发 OAuth 对话框
  3. access_token、id_token 和一次性代码被返回
  4. 客户端向服务器发送 id_token 和代码
  5. 服务器为 access_token 交换一次性代码
  6. 谷歌返回 access_token
  7. 服务器应向客户端确认“完全登录”

我已经大部分时间都在工作,但我希望 AngularJS 在步骤 7 中知道客户端何时“完全登录”。

理想情况下,我希望第 3 步由 AngularJS 控制器处理,但我不确定这是否可能。

登录按钮在这里:

https://developers.google.com/+/web/signin/server-side-flow#step_4_add_the_sign-in_button_to_your_page

<!-- Add where you want your sign-in button to render -->
<div id="signinButton">
  <span class="g-signin"
    data-scope="https://www.googleapis.com/auth/plus.login"
    data-clientid="YOUR_CLIENT_ID"
    data-redirecturi="postmessage"
    data-accesstype="offline"
    data-cookiepolicy="single_host_origin"
    data-callback="signInCallback">
  </span>
</div>
<div id="result"></div>

data-callback 参数允许我指定一个函数,但我只能让它在全局函数上工作。

我能想到的唯一解决方法是 AngularJS 不断地轮询服务器以防万一用户登录,但我想知道是否有办法在事件结构中使这项工作成为即时的。

无论这是否可能,我都会非常感谢任何关于我应该如何去做的建议。请让我知道,如果你有任何问题。谢谢你!

4

1 回答 1

11

经过一堆搜索,我终于在这里找到了我需要的东西:

https://developers.google.com/+/web/signin/#javascript_api

我无法使用数据属性来完成我需要的事情。我需要使用 javascript API 手动呈现按钮。

于 2013-03-07T20:36:13.390 回答