1

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 にアップグレードする必要があり、現在は機能していません。これはジャンゴの問題ですか?私は賭けない。助けてください。

PS access_token をこの URL https://accounts.google.com/o/oauth2/revoke?token= {token} に手動で渡すことでトークンを取り消すことができることはわかっていますが、API で提供されている方法を使用したいと考えています。

4

1 に答える 1