3.1.4 • Published 1 year ago
@lucaselb/node-sp-auth v3.1.4
custom-node-sp-auth - nodejs to SharePoint unattended http authentication
Project forked from: https://github.com/s-KaiNet/node-sp-auth
How to use:
Install:
npm install @lucaselb/node-sp-auth --save-devCreate authentication headers and perform http request:
import * as spauth from '@lucaselb/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 containAuthorizationheader, 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 setagentproperty on corresponding http client
params:
url- required, string, url to SharePoint site,https://sp2013/sites/dev/orhttps:/[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-authautomatically determines which authentication strategy to use (strategies listed in the top of the readme file).
Possible values for credentialOptions (depending on authentication strategy):
SharePoint on premise (2013, 2016):
- Addin only permissions:
clientId,issuerId,realm,rsaPrivateKeyPath,shaThumbprint - User credentials through the http ntlm handshake:
username,password,domain,workstation - User credentials for form-based authentication (FBA):
username,password,fba= true - User credentials for Forefront TMG (reverse proxy):
username,password,tmg= true
- Addin only permissions:
SharePoint Online:
- Addin only permissions:
clientId,clientSecret - SAML based with user credentials
username,password,online
- Addin only permissions:
ADFS user credentials:
username,password,relyingParty,adfsUrl,adfsCookie- On demand authentication
ondemand= true,electron,force,persist,ttl - no authentication - do not provide any authentication data at all, like
spauth.getAuth(url).then(...). In that casenode-sp-authwill ask you for the site url and credentials. You will have to select any of the credential options listed above. Credentials will be stored in a user folder in an encrypted manner.
Credits: Andrew Koltyakov @koltyakov and his awesome node-sp-auth-config
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 underlinerequestmodule via providing below code (for options available consider request repository):spauth.setup({ requestOptions: {... request options object} });