我正在使用来自 google-api-python-client 的内置 revoke 方法从 django 应用程序创建注销功能,但它似乎不起作用。这是我的代码。
def google_logout(request, user_id = None):
storage = Storage(CredentialsModel, 'id', user_id, 'credential')
credential = storage.get()
if credential is not None:
cr_json = credential.to_json()
credential = credential.new_from_json(cr_json)
http = httplib2.Http()
http = credential.authorize(http)
try:
# Don't know yet why this is always raising an exception.
credential.revoke(http)
storage.delete()
except TokenRevokeError:
return HttpResponseBadRequest('Invalid Token.')
else:
return redirect('authentication:google_login')
这在我使用 django 1.4.5 时有效,但后来我需要升级到 1.5.1,现在它无法正常工作。这是一个django问题吗?我打赌不会。请帮忙。
PS 我知道我可以通过手动将 access_token 传递给这个 url https://accounts.google.com/o/oauth2/revoke?token= {token} 来撤销令牌,但我想使用 api 中提供的方法。