Giter Site home page Giter Site logo

node-sp-auth's Introduction

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

NPM npm version

Need help on SharePoint with Node.JS? Join our gitter chat and ask question! Gitter chat

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
    • Form-based authentication (FBA)
    • Forefront TMG authentication
  • SharePoint Online:
    • Addin only permissions
    • SAML based with user credentials
  • ADFS user credentials (works with both SharePoint on-premise and Online)
  • On demand authentication. Uses interactive browser session for asking credentials. Supports third-party authentication providers for SharePoint Online and SharePoint on-premise. Doesn't support integrated windows authentication (NTLM).

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

Create authentication headers and perform http request:

import * as spauth from 'node-sp-auth';
import * as request from 'request-promise';

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

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

    request.get({
      url: 'https://[your tenant].sharepoint.com/sites/dev/_api/web',
      headers: headers
    }).then(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 - required, string, url to SharePoint site, https://sp2013/sites/dev/ or https:/[your tenant].sharepoint.com/sites/dev/
  • credentialOptions - optional, 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.

setup(configuration)

params:

  • configuration - object accepting some configuration values for node-sp-auth. Currently it supports only configuration of underline request module via providing below code (for options available consider request repository):
spauth.setup({
   requestOptions: {... request options object}
 });

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 - runs linting and typescript compilation
  3. npm run 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 npm run test:integration.
  4. For tests debugging put a breakpoint and press F5 (works in VSCode only).

node-sp-auth's People

Contributors

s-kainet avatar koltyakov avatar larnera avatar renzska avatar

Watchers

James Cloos avatar  avatar

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.