从OAuth2注销-谷歌应用程序引擎/Python

从OAuth2注销-谷歌应用程序引擎/Python,python,google-app-engine,oauth-2.0,google-api,google-oauth,Python,Google App Engine,Oauth 2.0,Google Api,Google Oauth,有很多关于如何使用OAuth2登录用户的文档,但我还没有找到任何文档可以像注销用户那样轻松。有人知道我怎么做吗?我只想让用户退出我的应用程序,这样其他人就可以登录了 以下是我的登录代码(如果有帮助): import jinja2 import os import webapp2 from apiclient.discovery import build from oauth2client.contrib.appengine import OAuth2Decorator from google.

有很多关于如何使用OAuth2登录用户的文档,但我还没有找到任何文档可以像注销用户那样轻松。有人知道我怎么做吗?我只想让用户退出我的应用程序,这样其他人就可以登录了

以下是我的登录代码(如果有帮助):

import jinja2
import os
import webapp2

from apiclient.discovery import build
from oauth2client.contrib.appengine import OAuth2Decorator
from google.appengine.api import users


decorator = OAuth2Decorator(
    client_id='',
    client_secret='',
    scope='https://www.googleapis.com/auth/userinfo.email')

template_env = jinja2.Environment(
    loader=jinja2.FileSystemLoader(os.getcwd()))

class LoginHandler(webapp2.RequestHandler):
    @decorator.oauth_required
    def get(self):
        user = users.get_current_user()

        template = template_env.get_template('index.html')
        context = {
             'user': user,
        }

        self.response.out.write(template.render(context))

application = webapp2.WSGIApplication(
    [
     ('/login', LoginHandler),
     (decorator.callback_path, decorator.callback_handler())
    ],
    debug=True)

我认为您混淆了身份验证(开放Id连接)和授权(Oauth2)。Oauth2授予您访问用户数据的权限—它与验证用户无关。您永远不会注销Oauth2授权

也就是说,您可以撤销对用户数据的访问,然后系统会提示他们再次授予您访问权限

requests.post('https://accounts.google.com/o/oauth2/revoke',
    params={'token': credentials.token},
    headers = {'content-type': 'application/x-www-form-urlencoded'})

有关更多信息,请参见链接已断开。仍然不清楚如何使用python客户端库注销。@ilya链接已修复。你有没有理由不能使用我发布的代码来撤销令牌?是的,你的答案是正确的,我投了赞成票。但我希望有一种方法可以注销/撤销,它不是使用直接http调用,而是使用高级客户端库(如)