9
僅供參考,這裏是我一起工作的Google+的流量:谷歌的OAuth2登錄與AngularJS回調
https://developers.google.com/+/web/signin/server-side-flow
- 用戶點擊登錄按鈕。授權請求被髮送到谷歌的OAuth服務器觸發用戶
- 的access_token,id_token
- OAuth的對話框,並一次性代碼返回
- 客戶端發送id_token和代碼服務器
- 服務器交換一個爲
的access_token- 谷歌 - 時間代碼返回的access_token
- 服務器應確認 「在完全記錄」,以客戶
我已經有這個主要是工作,但我想AngularJS知道當客戶端在步驟「完全登錄」 7
理想情況下,我想第3步,由AngularJS控制器來處理,但是我不確定這是否可能。
的登錄按鈕是在這裏:
<!-- 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>
數據回調參數允許我指定的函數,但是我只能得到它的全球職能的工作。
我能想到的唯一解決方法就是讓AngularJS在用戶登錄的情況下不斷輪詢服務器以進行更新,但是我想知道是否有辦法在事件結構中完成這項工作,這一切都是瞬間的。
無論這是否可行,我都非常感謝任何有關如何應對此問題的建議。請讓我知道,如果你有任何問題。謝謝!
你是如何解決它的?我嘗試傳遞一個函數作爲callbalck的參考,但不工作。 – vintem 2013-07-03 19:30:41
@VinTem對我來說,關鍵是傳遞一個代表元素ID的字符串,而不是角度(jqlite)元素本身。 – alalonde 2014-09-16 20:38:48
爲了使這更容易,我發現這個很好的小角度指令,可以生成谷歌加按鈕,打開窗口並將訪問令牌返回到orgin窗口,然後您可以發送到服務器以獲取用戶詳細信息。 https://github.com/sirkitree/angular-directive.g-signin – craigvl 2015-02-05 03:53:43