2015-04-16 63 views
4

http://api.chan15.info/google-stackoverflow.html如何通過谷歌的JavaScript的oauth2 API獲得訪問令牌

這是我使用通過谷歌的JavaScript API,讓用戶登錄的示例代碼,它的工作,下一步是使用用戶ID通過登錄到本地服務器PHP,而是使用由JavaScript的用戶ID是非常危險的,真正的程序我想要的是:

  1. 通過JavaScript API
  2. GET從的access_token的JavaScript
  3. 通過訪問令牌PHP
  4. 登錄用戶
  5. 使用訪問令牌谷歌的OAuth再次通過PHP
  6. 通過用戶ID

獲得用戶ID

  • 登錄用戶,但我不知道如何獲得訪問令牌。

  • +0

    的谷歌登錄API應該重定向到您所選擇的頁面,這就是你會得到在服務器端的令牌,然後拿到數據與令牌等 – adeneo

    +0

    JavaScript API似乎沒有做重定向工作 – Chan

    +0

    它確實如果你做一個混合登錄 - > https://developers.google.com/+/web/signin/server-side-flow – adeneo

    回答

    1

    中使用JavaScript的oauth2 API的谷歌帳戶的用戶登錄後訪問令牌可以在這裏找到:。

    gapi.auth2.getAuthInstance()currentUser.get()getAuthResponse() .access_token;

    我用它將令牌傳遞給單獨的curl PHP請求以及CORS。由於Google的JS API仍然是Beta版本,因此我不得不求助於過去發送PHP curl請求。如果您打算在用戶導航後存儲令牌以進行訪問,我還會獲取令牌到期日期並調用另一個函數,該函數在過期或明確吊銷時清除存儲的令牌。但是對於我來說,每次成功登錄後都可以更容易地實現這一點,因爲我只需要一次實時調用PHP函數並以AJAX形式作爲bandaid進行實時調用。

    PS:您可能需要從Java中的原始類別更改爲Javascript

    +0

    你的答案會更好,如果它還包含一些解釋的話。 – mkl

    相關問題