Socket
Socket
Sign inDemoInstall

node-sp-auth

Package Overview
Dependencies
76
Maintainers
1
Versions
67
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    node-sp-auth

Contains sample implementation for node js SharePoint authentication (windows for on premise and saml based for SharePoint Online)


Version published
Weekly downloads
14K
decreased by-5.53%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

node-sp-auth - nodejs to SharePoint unattended http authentication

NPM

npm version

node-sp-auth allows you to perform SharePoint unattended (without user interaction) http authentication with nodejs using different authentication techniques. node-sp-auth also takes care about caching authentication data for performance (no need for you to think about how long authentication will be available, that's a task for node-sp-auth, as soon as authentication will be expired, node-sp-auth will renew it internally).
Versions supported:

  • SharePoint 2013, 2016
  • SharePoint Online

Authentication options:

  • SharePoint 2013, 2016:
    • Addin only permissions
    • User credentials through the http ntlm handshake
  • SharePoint Online:
    • Addin only permissions
    • SAML based with user credentials

Wiki contains detailed steps you need to perform in order to use any of authentication options as well as sample using.


How to use:

Install:
npm install node-sp-auth --save-dev
Optionally install definitions if you are developing with TypeScript:
typings install npm:node-sp-auth --save
Create authentication headers and perform http request:
var spauth = require('node-sp-auth');
var request = require('request-promise');

//get auth options
spauth.getAuth(url, credentialOptions)
  .then(function(options){

    //perform request with any http-enabled library (request-promise in a sample below):
    var headers = options.headers;
    headers['Accept'] = 'application/json;odata=verbose';

    request.get({
      url: 'https://[your tenant].sharepoint.com/sites/dev/_api/web',
      headers: headers
    }).then(function(response){
      //process data
    });
  });

API:

getAuth(url, credentialOptions)

return value:

Promise resolving into object with following properties:

  • headers - http headers (normally contain Authorization header, may contain any other heraders as well)
  • options - any additional options you may need to include for succesful request. For example, in case of on premise user credentials authentication, you need to set agent property on corresponding http client
params:
  • url - string, url to SharePoint site, https://sp2013/sites/dev/ or https:/[your tenant].sharepoint.com/sites/dev/
  • credentialOptions - object in a form of key-value. Each authentication option requires predefined credential object, depending on authentication type. Based on credentials provided, node-sp-auth automatically determines which authentication strategy to use (strategies listed in the top of the readme file).

Possible values for credentialOptions (depending on authentication strategy):

Please, use Wiki to see how you can configure your environment in order to use any of this authentication options.

Development:

I recommend using VS Code for development. Repository already contains some settings for VS Code editor.

Before creating Pull Request you need to create an appropriate issue and reference it from PR.

  1. git clone https://github.com/s-KaiNet/node-sp-auth.git
  2. npm run build - restores dependencies and runs typescript compilation
  3. gulp live-dev - setup watchers and automatically runs typescript compilation, tslint and tests when you save files

Integration testing:

  1. Rename file /test/integration/config.sample.ts to config.ts.
  2. Update information in config.ts with appropriate values (urls, credentials).
  3. Run gulp test-int.

FAQs

Last updated on 04 Oct 2016

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