JSPM

  • Created
  • Published
  • Downloads 559571
  • Score
    100M100P100Q188041F
  • License ISC

digest auth request plugin for fetch/node-fetch

Package Exports

  • digest-fetch

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (digest-fetch) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

digest-fetch

Join the chat at https://gitter.im/devfans/digest-fetch NPM Version NPM Downloads Build Status Test Coverage

digest auth request plugin for fetch/node-fetch.

Installation

// dependencies for node
npm install crypto-js node-fetch

// for browers, if to use it directly, please indcude file `digest-fetch.js` in a <script/> 
<script type="application/javascript" src="path-to-digest-fetch.js'></script>

Get Started

const DigestFetch = require('digest-fetch')
const digestOptions = {
  cnonceSize: 32,  // length of cnonce, default: 32
  logger: console, // logger for debug, default: none
  algorithm: 'MD5' // only 'MD5' is supported now
}

const client = new DigestFetch('user', 'password', digestOptions) 

// do request same way as fetch or node-fetch
const url = ''
const options = {}
client.fetch(url, options)
  .then(resp=>resp.json())
  .then(data=>console.log(data))
  .catch(e=>console.error(e))

// pass in refresh request options factory function for conditions options needs be refreshed when trying again.
// etc: when posting with file stream
const factory = () => ({ method: 'post', body: fs.createReadStream('path-to-file') })
client.fetch(url, {factory})
  .then(resp=>resp.json())
  .then(data=>console.log(data))
  .catch(e=>console.error(e))