2015-04-01 73 views
0

在我的(客戶端AngularJS)Web應用程序我使用谷歌API的OAuth讓用戶登錄如何使用Google的Javascript API撤銷Oauth令牌?

 gapi.auth.authorize({ 
      client_id: clientId, 
      scope: scopes, 
      immediate: true 
     }, handleAuthResult); 

現在我希望讓用戶signout爲好。

我發現我可以通過使用HTTP請求做它作爲解釋:

https://developers.google.com/+/web/signin/disconnect

但是,由於我使用的JavaScript API進行登錄,我想使用Javascript也用於註銷(即撤銷訪問令牌)

可能嗎?如果是,如何?

編輯:我準確的,我的目標不是越來越像使用通過jQuery的HTTP請求,但事情的登錄,例如:

gapi.auth.signout(..

+0

我有點困惑。您希望「也使用Javascript來註銷(即撤銷訪問令牌)」。並且您鏈接的頁面只有這樣一個JavaScript示例。 – pinoyyid 2015-04-01 19:57:51

回答

2

的谷歌GAPI庫沒有這樣的方法。如果你是jQuery的反對,這不是太困難XMLHttpRequest來替換$阿賈克斯。

確保您瞭解「註銷」(您的Google帳戶)和撤銷訪問令牌之間的區別。它們不是同一件事。

在會議上,一個典型的順序是: -

1 /檢查你的會話對象,看它是否持有用戶對象。

1A /如果是,你的用戶「登錄」

1B /如果沒有,使用OAuth發現用戶是誰,看他在你的用戶數據庫,並保存他的用戶對象在會話

要註銷,只需從會話中刪除用戶對象。

在OAuth世界中,用戶/會話管理有多種變體和替代方法。這只是一種方法。

+0

謝謝你的回答。 – dragonmnl 2015-04-02 11:03:02

+0

只是爲了確保我的理解正確:撤銷令牌基本上意味着從我的應用程序(而不是谷歌)註銷用戶。對?同樣,我可以通過Google API(。auth方法)登錄並通過使用Ajax/http請求註銷,即使它們是不同的消息交換方法(如果我沒有誤解) – dragonmnl 2015-04-02 11:05:16

+0

「撤銷令牌基本上意味着從我的用戶註銷應用程序「。編號令牌由REST客戶端用來告訴REST服務器他們有權執行某些操作。 REST沒有登錄或註銷的概念,因爲它是無狀態的(即無會話)。你將如何登錄一個用戶退出你的服務取決於你的意思,首先登錄他。我用一個通用的序列更新了我的答案(因爲評論不允許格式化) – pinoyyid 2015-04-02 11:51:11