使用AngularJS回调的Google OAuth2登录



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

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

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

我已经大部分工作了,但我希望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在用户登录的情况下不断地轮询服务器更新,但我想知道是否有一种方法可以在事件结构中完成这项工作,以便它是即时的。

无论这是否可能,我都将非常感谢你对我该如何做这件事的任何建议。如果你有任何问题,请告诉我。谢谢你!

经过一番搜索,我终于找到了我需要的东西:

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

我不能使用数据属性来完成我需要的。我需要使用javascript API手动渲染按钮

相关内容

  • 没有找到相关文章

最新更新