2015-04-01 74 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