google-auto-oauth2

1.1.7 • Public • Published

google-auto-oauth2

Automatically get google oauth2 token by given username, password, clientID, clientSecret.

npm i google-auto-oauth2 --save

ex.

const google = require('googleapis')
const OAuth2 = google.auth.OAuth2
const googleAutoOauth2 = require('google-auto-oauth2')

const CLIENT_ID = 'xxxxxx.apps.googleusercontent.com'
const CLIENT_SECRET = 'xxxxxx'
const REDIRECT_URL = 'urn:ietf:wg:oauth:2.0:oob'

var params = {
	email: 'xxx@gmail.com',
	password: 'xxxxxx'
}

var scopes = [
  'https://picasaweb.google.com/data/'
]

var url = oauth2Client.generateAuthUrl({
  access_type: 'offline', // 'online' (default) or 'offline' (gets refresh_token)
  scope: scopes // If you only need one scope you can pass it as string
})

googleAutoOauth2.options = { //nightmare options
	show: true,
	webPreferences:{
		partition: 'nopersist',
	}
}

googleAutoOauth2.getCode(url, params, 20000).then(data => {
	oauth2Client.getToken(data.code, function(err, tokens) {
	  if(!err) {
	    console.log(tokens);
	  }
	})
}).catch((error) => console.log(error))

Some times you may meet a challenge where google asks you for phone number and reset the password. Be careful, this will reset your password.

const google = require('googleapis')
const OAuth2 = google.auth.OAuth2
const googleAutoOauth2 = require('../')
const randomstring = require("randomstring")

const CLIENT_ID = 'xxxxxx.apps.googleusercontent.com'
const CLIENT_SECRET = 'xxxxxx'
const REDIRECT_URL = 'urn:ietf:wg:oauth:2.0:oob'

var oauth2Client = new OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL)

var scopes = [
  'https://picasaweb.google.com/data/'
]

var url = oauth2Client.generateAuthUrl({
  access_type: 'offline', // 'online' (default) or 'offline' (gets refresh_token)
  scope: scopes // If you only need one scope you can pass it as string
})

var params = {
	email: 'xxxx@gmail.com',
	password: 'xxxx',
	challenge: {
		phoneNumber: '17028141496',
		password: randomstring.generate(), //reset password to a random string
	},
	debug: true
}

googleAutoOauth2.options = {
	show: true,
	webPreferences:{
		partition: 'nopersist',
	}
}
	
googleAutoOauth2.getCode(url, params, 20000).then(data => {
	console.log(data.code)
	console.log(data.password) // output the new password.
	oauth2Client.getToken(code, function(err, tokens) {
	  if(!err) {
	    console.log(tokens);
	  }
	})
}).catch((error) => console.log(error))

Readme

Keywords

Package Sidebar

Install

npm i google-auto-oauth2

Weekly Downloads

5

Version

1.1.7

License

MIT

Last publish

Collaborators

  • kuyoonjo