Socket
Socket
Sign inDemoInstall

google-service-account

Package Overview
Dependencies
55
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    google-service-account

Create a authorized connection to Google APIs.


Version published
Weekly downloads
20
decreased by-66.1%
Maintainers
1
Install size
5.57 MB
Created
Weekly downloads
 

Readme

Source

google-service-account

Make authenticated requests using a Google service account.

This maintains an active Google service account token, allowing you to make server-to-server requests. It will automatically re-fetch a new token if a previous one expires.

To make a valid connection, you just attach an Authorization property to your outgoing request's headers object. This module returns that object.

Install

$ npm install --save google-service-account

Use

error handling omitted

var request = require("request")

var authorize = require("google-service-account")({
  keyFile: "path/to/keyfile.json"
})

authorize(function (err, headers) {
  request({
    method: "GET",
    uri: "https://www.googleapis.com/pubsub/v1beta1/subscriptions",
    headers: headers
  }, function () {
    // Request callback.
  })
})

Each time you invoke authorize(), a new token may be fetched if necessary. Be sure to call it each time you make an outgoing request.

If the example above looked a little verbose for you, you may also use the authorize function for its extending functionality:

authorize({
  method: "GET",
  uri: "https://www.googleapis.com/pubsub/v1beta1/subscriptions"
}, function (err, requestObject) {
  request(requestObject, function () {
    // Request callback.
  })
})

If even that gets tiresome, you can always write up a quick helper for your app:

function makeAuthorizedRequest(opts, cb) {
  authorize(opts, function (err, requestObject) {
    request(requestObject, cb)
  })
}
// ...later...
makeAuthorizedRequest({
  method: "GET",
  uri: "https://www.googleapis.com/pubsub/v1beta1/subscriptions"
}, function(err, response) {
  // Request callback.
})

API

var authorize = require("google-service-account")(options)

options

One of the following is required:

options.credentials
  • Type: Object

The contents of a JSON key file downloaded from the Google Developers Console.

options.keyFile
  • Type: String

Path to a JSON key file downloaded from the Google Developers Console.

options.scopes
  • Type: Array

The scopes your request requires.

authorize([options,] callback)

  • Type: Function

Invoke this method every time you need a valid token. It will handle requesting a new token if necessary, and will return it to your callback as part of an HTTP request headers object:

{
  headers: {
    Authorization: "..token.."
  }
}
options
  • (optional)
  • Type: Object

The object you pass in here will be extended with the token object in the format above.

callback
  • Type: Function

The callback function receives a HTTP request headers object, containing a valid token.

authorize.getCredentials()

Invoke this method to get the credentials object, containing the client_email, client_id, etc.

authorize.getToken()

Invoke this method to get only the value of a token.

Keywords

FAQs

Last updated on 10 Nov 2014

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc