Giter VIP home page Giter VIP logo

google-oauth-jwt-stream's Introduction

google-oauth-jwt-stream

Build Status

An endless supply of fresh OAuth access tokens for use with Google APIs.

There are already several libraries that can generate Google service tokens, but I wanted one that:

  • Allows keys to be streamed in, so that you don't have to tie your app to a filesystem path or make it async.
  • Allows tokens to be streamed out, so that you don't have to detect authorization failure or refresh tokens in your app.
  • Makes the most of stable core runtime libraries.

Example

import fs from "fs"
import {Token} from "google-oauth-jwt-stream"

let email = "[email protected]"
let key = fs.createReadStream("./key.pem")

let scopes = ["https://spreadsheets.google.com/feeds"]
let options = {ttl: 10 * 1000, pad: 1000} // silly short for demo
let token = new Token(email, key, scopes, options)

token.createReadStream().on("data", console.log)
// { access_token: "...Dg7w", token_type: 'Bearer', expires_in: 3600 }
// { access_token: "...sixQ", token_type: 'Bearer', expires_in: 3600 }
// { access_token: "...1ftw", token_type: 'Bearer', expires_in: 3600 }
// ...

Installation

npm install google-oauth-jwt-stream

Setup

See the SETUP file.

API

import Token from "google-oauth-jwt-stream"

let token = Token(email, key, scopes, [options])

Returns a token given the following parameters:

  • email: The email address assigned to the service from the Google APIs console.
  • key: The decoded key corresponding to the above service. This can either be as a String or Readable stream, such as from the filesystem.
  • scopes: A list of scope URLs pertaining to the accessed services
  • options.ttl: The time to live for generated tokens, in ms.
  • options.pad: The amount of time before expiration at which the next token should be fetched.

let stream = token.createReadStream()

Returns a readable stream of tokens. Note that since this requires a setTimeout to keep the stream open, your process will not terminate implicitly.

token.fetch(callback)

Executes callback with (err, token), and caches tokens so that all subsequent calls return the same token. Token refresh is performed automatically.

google-oauth-jwt-stream's People

Contributors

jed avatar

Stargazers

 avatar Kirian CAUMES avatar Nikolas Evers avatar Huan Li avatar Michael Puckett avatar  avatar

Watchers

James Cloos avatar  avatar

Forkers

syzer ahdinosaur

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.