google-oauth-utility

0.0.1 • Public • Published

google-oauth-utility

Why this module

This is a module simplify the Google Oauth2 3 way handshack flow. Google's Oauth2 3 way handshack should participate with human, and we can use refresh token for extend the token's life. The module is use for transparent the refresh token exchange another token process. And user just need to do the first time to generate token file.

Generate token file

Using os path web application account.

gnutil -d [path-to-tmp-file]

The os path config file:

{
  "CLIENT_ID":"429************kunu.apps.googleusercontent.com",
  "CLIENT_SECRET":"yq***********0A",
  "REDIRECT_URL":"http://localhost:8888/oauth2callback",
  "DEFAULT_SCOPES": [
    "https://www.googleapis.com/auth/userinfo.profile",
    "https://www.googleapis.com/auth/userinfo.email",
    "https://www.googleapis.com/auth/plus.me"
  ]
}

In Mac or linux, you can put the config file under $HOME. In windows, please set the %HOME% for your system to let the module can find a path to store the file.

Using your own credential in command line:

gnutil -d [path-to-tmp-file] \
    -c [your-client-id] \
  -k [your-secret-key] \
  -u [your-redirect-url] \
  -s [your-scopes]

Usage

var oauth = require('google-oauth-utility');
var scopes = [ 'https://www.googleapis.com/auth/calendar',
  'https://www.googleapis.com/auth/userinfo.profile',
  'https://www.googleapis.com/auth/userinfo.email'
  ];

var opts = {
  clientId:'your-client-id',
  clientSecret:'your-client-secret',
  redirectUrl: 'your-redirect-url',
  tmpPath:'/tmp/.gauth'
};

oauth.authflow(scopes, opts, function(err, tokens){
  if(err) log.error(err);
  console.log('process end..........');
  console.log(tokens);
});

The function authflow will auto save the token to the tmpPath path. And if the path file exist, system will use the token file's refresh token to exchange token. The user side will no-need to join the token retrieve flow. If the tmpPath file not exist, user need join to do the Oauth2 auth flow.

Readme

Keywords

none

Package Sidebar

Install

npm i google-oauth-utility

Weekly Downloads

1

Version

0.0.1

License

ISC

Last publish

Collaborators

  • peihsinsu