Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No refresh_token in response of getToken #750

Closed
mathieug opened this issue May 18, 2017 · 4 comments
Closed

No refresh_token in response of getToken #750

mathieug opened this issue May 18, 2017 · 4 comments
Assignees

Comments

@mathieug
Copy link

I don't receive refresh_token in the response of getToken().

Here is how I generate the auth url:

oauth2Client.generateAuthUrl({
  access_type: 'offline',
  scope: 'https://www.googleapis.com/auth/cloudprint'
});

Thanks!

@katpas
Copy link

katpas commented May 28, 2017

@mathieug I've been working on a similar part of our code today. It looks like you only get a refresh_token in the response on the first authorisation.

Assuming you're using one of your own google accounts to test this, go to - https://myaccount.google.com/permissions and revoke the permissions your app has to your personal google account.

Then try to run the auth again from your project, you should see a refresh_token in the response if that was the issue!

EDIT: Here's a stack overflow question on the same topic - https://stackoverflow.com/questions/10827920/not-receiving-google-oauth-refresh-token#comment56214632_10857806

@mathieug
Copy link
Author

mathieug commented May 28, 2017

Exactly, it's what I figured out few days ago. Thank you @katpas.
I close this issue even if sometimes the refresh_token appears again.

@erickoledadevrel
Copy link
Contributor

To be more precise, you only get a refresh_token back when the user saw the consent screen, AKA the list of scopes and the "Accept" button. Users will see this screen the first time they are asked to grant access, but upon subsequent trips through the OAuth flow that screen is skipped (assuming they haven't revoked access). However, you can force the user to see the consent screen again by passing &prompt=consent in the authorization URL:

var url = oauth2Client.generateAuthUrl({
  access_type: 'offline',
  scope: scopes,
  prompt: 'consent'
});

More details about this option can be found in the auth library.

@theblindprophet
Copy link

It needs to be noted access_type: 'offline' needs to be present on the url request for the refresh token to be given. https://stackoverflow.com/questions/10827920/not-receiving-google-oauth-refresh-token

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants