Skip to content

Node bindings to the Box Content API using the new AppAuth JWT auth system

Notifications You must be signed in to change notification settings

ehealthtech/box-appauth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Box AppAuth SDK

https://box-content.readme.io/v2.0/docs/app-auth

Usage

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

Then:


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

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) {

	...do something with the Promise based api

	api.folders
	.methodA({...})
	.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);
});

Tests

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

or

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

About

Node bindings to the Box Content API using the new AppAuth JWT auth system

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published