作为参考,以下是我正在使用的Google+流程:
https://developers.google.com/+/web/signin/server-side-flow
- 用户单击登录按钮。授权请求被发送到Google的OAuth服务器
- 触发用户
OAuth对话框- 返回access_token、id_token和一次性代码
- 客户端发送id_token和代码到服务器
- 服务器为access_token交换一次性代码
- Google返回access_token
- 服务器应确认"已完全登录"到客户端
我已经大部分工作了,但我希望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手动渲染按钮