从OAuth2注销-谷歌应用程序引擎/Python
有很多关于如何使用OAuth2登录用户的文档,但我还没有找到任何文档可以像注销用户那样轻松。有人知道我怎么做吗?我只想让用户退出我的应用程序,这样其他人就可以登录了 以下是我的登录代码(如果有帮助):从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.
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调用,而是使用高级客户端库(如)