Bolutife Ogunsola
Bolutife Ogunsola

Reputation: 298

Revoke access granted to my app Google Drive API

How do I revoke access that has been granted to my Google Drive web application so that upon the user's next use he is asked for permissions afresh?

Upvotes: 13

Views: 14911

Answers (5)

Shiven Ojha
Shiven Ojha

Reputation: 77

In order to revoke the access go to the below url

https://security.google.com/settings/security/permissions?pli=1

Choose your apps that you need to revoke and click on remove.

Upvotes: 4

Benn Sandoval
Benn Sandoval

Reputation: 903

Using Google Play Services:

http://developer.android.com/reference/com/google/android/gms/auth/GoogleAuthUtil.html

Add https://www.googleapis.com/auth/userinfo.profile to your scope.

Example:

String scope="oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"

final String token = GoogleAuthUtil.getToken(context, "[email protected]", scope);

OR "brute force"

Intent res = new Intent();
res.addCategory("account:[email protected]");
res.addCategory("scope:oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile");
res.putExtra("service", "oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile");
Bundle extra= new Bundle();
extra.putString("androidPackageName","com.your.package");
res.putExtra("callerExtras",extra);
res.putExtra("androidPackageName","com.your.package");
res.putExtra("authAccount","[email protected]");

String mPackage = "com.google.android.gms";
String mClass = "com.google.android.gms.auth.TokenActivity";
res.setComponent(new ComponentName(mPackage,mClass));
startActivityForResult(res,100);

Now, when you revoke the access here https://accounts.google.com/IssuedAuthSubTokens the application shows you the window for permission again in the device.

Upvotes: 0

DenisGL
DenisGL

Reputation: 1200

For revoking your access token, you need to "GET" (!) this url: https://accounts.google.com/o/oauth2/revoke?token={token} where {token} is the value of your token, as explained here: https://developers.google.com/accounts/docs/OAuth2WebServer#tokenrevoke

For Java API (don't know for other languages), as of 9th of Sept 2012, there is no API for this. I managed to revoke a token with this code:

class myGoogleApi {
    private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();

    ...

    public revoke(String token) {
        HttpRequestFactory factory = HTTP_TRANSPORT.createRequestFactory();
        GoogleUrl url = new GoogleUrl("https://accounts.google.com/o/oauth2/revoke?token="+token);
        HttpRequest request = factory.buildGetRequest(url);
        HttpResponse response = request.execute();
        ...
    }

Upvotes: 26

Steve Bazyl
Steve Bazyl

Reputation: 11672

If you clobbered all the refresh tokens in your DB, adding the query parameter approval_prompt=force to the auth request will fix that. It'll result in the refresh tokens getting reissued when the user next approves the request.

Upvotes: 9

Claudio Cherubino
Claudio Cherubino

Reputation: 15004

Visit https://accounts.google.com/b/0/IssuedAuthSubTokens?hl=en for the list of applications and sites that you granted access to. Next to each of them you'll find a Revoke Access button.

The instructions to get to that page are at http://support.google.com/accounts/bin/answer.py?hl=en&answer=41236

Upvotes: 3

Related Questions