/node-jose-browserify

Primary LanguageJavaScriptApache License 2.0Apache-2.0

published download total

node-jose-browserify

An advanced version of Cisco's node-jose module that works in both browser and the server. It is compatible with node.js and angular

Refer to https://github.com/cisco/node-jose for documentation.

PR

The PR Angular Support: To make node-jose work in angular apps is raised to merge the changes with the node-jose repo.

Since the node-jose repo is not actively maintained now, this PR can't be merged. So this fork is published.

Dependencies Added:

  • browserify-zlib: In the browser if Node's 'zlib' can't be resolved, browserify-zlib can be used.
  • buffer: make buffer, that emulates node's Buffer API, available globally in the browser
  • process: make process, that emulates node's Process API, available globally in the browser
  • stream-browserify: this should be used by zlib/browserify-zlib instead of 'stream'. Should be mentioned in angular compiler options.

The steps to use node-jose in angular app is added in the readme file.

Install

    npm i node-jose-browserify

Angular Usage

Import and use as any other package. All the methods will be supported in the browser, just as in node.js.

import * as jose from 'node-jose-browserify';

The following changes are required to make few node-modules available in the browser

  • angular compilerOptions for stream

    In tsconfig.json , compilerOptions add

    "paths": {
        "stream": ["../node_modules/stream-browserify/index.js"]
    }

    This is to avoid the below error

    ERROR in ./node_modules/browserify-zlib/lib/index.js. Module not found: Error: Can't resolve 'stream' in '***/node_modules/browserify-zlib/lib'

  • polyfil for global object In polyfills.ts add

    // Polyfill for node-jose
    (window as any)['global'] = window;
    

    This is to avoid the below error

    Uncaught ReferenceError: global is not defined

Merging node-jose updates

To pull the latest updates from node-jose into node-jose-browserify

$ git pull https://github.com/cisco/node-jose.git master