Node bindings to the Box Content API using the new AppAuth JWT auth system
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Box AppAuth SDK


You will need to create a Box account and proper public/private keys, and register them with Box.


var appAuth = require('box-appauth');

	publicKey : Your public key,
	privateKey : Your private key,
	algorithm : one of ['RS256','RS384','RS512'], Default 'RS256'
	issuer : The same as #clientId,
	subject : An app id(#user) or enterprise id(#enterprise),
	subjectType : 'user' or 'enterprise',
	clientId : Your client id,
	clientSecret : Your client Secret,
    publicKeyId: The id of your public key,
    callRetryMax: The number of call retries before giving up,
    minutesUntilTokenRefresh: Lifespan of a token in minutes. Must be >= 5 & <=50
.then(function(api) { something with the Promise based api

	.then(function(resultOfMethodA) {
	   return api.folder.methodB()
	.then(function(resultOfMethodB) {
	    // etc across as many calls as you'd like, all
	    // executed "sequentially".
	.catch(function(err) {

.catch(function(err) {
	console.log("** Unable to authenticate **", err);


You will need to create a .credentials.js folder in the root of the application using this module.

This file should look something like this:

"use strict";

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

module.exports = {
	publicKey : fs.readFileSync(path.resolve('./rsa/public_key.pem')),
	privateKey : fs.readFileSync(path.resolve('./rsa/private_key.pem')),
	algorithm : 'RS256',
	issuer : '<same as #clientId>',
	subject : '<an app id(#user) or enterprise id(#enterprise)>',
	subjectType : '<user or enterprise>',
	clientId : '<your client id>',
	clientSecret : '<your client Secret>',
    publicKeyId: '<the id of your public key>

To run all tests:

node test


npm test

To run individual, or a few individual, tests look in the test/spec folder and use the file names:

node test folders
node test folders folder_graph