Source: google/auth.js

/**
 * @module google/auth
 */

var google = require('googleapis');
var fs = require('fs');
var path = require('path');

/**
 * @const GOOGLE_CONFIG_PATH
 */
var GOOGLE_CONFIG_PATH = path.join(process.env['HOME'],'repositories/cliques-config/google');
/**
 * @const DEFAULT_JWT_SECRETS_FILE
 */
var DEFAULT_JWT_SECRETS_FILE = path.join(GOOGLE_CONFIG_PATH, 'jwt.json');

/**
 * Creates auth client to use with any Google Cloud API service.
 *
 * @param {String} jwt_auth_file path to JWT auth file
 * @param {Array} scopes
 * @param callback
 */
function getJWTAuthClient(jwt_auth_file, scopes, callback){
    var jwt_auth = JSON.parse(fs.readFileSync(jwt_auth_file, 'utf8'));
    var auth = new google.auth.JWT();
    auth.fromJSON(jwt_auth);
    auth.scopes = scopes;
    auth.authorize(function(err, tokens){
        if (err) return callback(err);
        return callback(null, auth);
    });
}
exports.getJWTAuthClient = getJWTAuthClient;
exports.GOOGLE_CONFIG_PATH = GOOGLE_CONFIG_PATH;
exports.DEFAULT_JWT_SECRETS_FILE = DEFAULT_JWT_SECRETS_FILE;