How to use the jose.JWKS function in jose

To help you get started, we’ve selected a few jose examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github panva / node-oidc-provider / test / run.js View on Github external
async function singleRun() {
  clearRequireCache();
  const jose = require('jose'); // eslint-disable-line global-require
  global.keystore = new jose.JWKS.KeyStore();
  await Promise.all([
    global.keystore.generate('RSA', 2048),
    global.keystore.generate('EC', 'P-256'),
    runtimeSupport.EdDSA ? global.keystore.generate('OKP', 'Ed25519') : undefined,
  ]);
  const DEFAULTS = require('../lib/helpers/defaults'); // eslint-disable-line global-require
  if (this.format === 'jwt-ietf' || typeof this.format === 'function') {
    DEFAULTS.features.ietfJWTAccessTokenProfile.enabled = true;
    DEFAULTS.features.ietfJWTAccessTokenProfile.ack = 2;
  }
  DEFAULTS.formats.AccessToken = this.format;
  DEFAULTS.formats.ClientCredentials = this.format;

  process.env.MOUNT_VIA = process.env.MOUNT_VIA || '';
  process.env.MOUNT_TO = process.env.MOUNT_TO || '/';
github panva / node-openid-client / lib / issuer.js View on Github external
async keystore(reload = false) {
    assertIssuerConfiguration(this, 'jwks_uri');

    const keystore = instance(this).get('keystore');
    const cache = instance(this).get('cache');

    if (reload || !keystore) {
      cache.reset();
      const response = await request.call(this, {
        method: 'GET',
        json: true,
        url: this.jwks_uri,
      });
      const jwks = processResponse(response);

      const joseKeyStore = jose.JWKS.asKeyStore(jwks, { ignoreErrors: true });
      cache.set('throttle', true, 60 * 1000);
      instance(this).set('keystore', joseKeyStore);
      return joseKeyStore;
    }

    return keystore;
  }
github panva / node-openid-client / lib / client.js View on Github external
function getKeystore(jwks) {
  const keystore = jose.JWKS.asKeyStore(jwks);
  if (keystore.all().some((key) => key.type !== 'private')) {
    throw new TypeError('jwks must only contain private keys');
  }
  return keystore;
}
github panva / node-oidc-provider-example / 01-oidc-configured / generate-keys.js View on Github external
const fs = require('fs');
const path = require('path');
const jose = require('jose');

const keystore = new jose.JWKS.KeyStore();

Promise.all([
  keystore.generate('RSA', 2048, { use: 'sig' }),
  keystore.generate('RSA', 2048, { use: 'enc' }),
  keystore.generate('EC', 'P-256', { use: 'sig' }),
  keystore.generate('EC', 'P-256', { use: 'enc' }),
  keystore.generate('OKP', 'Ed25519', { use: 'sig' }),
]).then(() => {
  fs.writeFileSync(path.resolve('src/jwks.json'), JSON.stringify(keystore.toJWKS(true), null, 2));
});
github panva / node-oidc-provider / lib / models / client.js View on Github external
get() {
        const keystore = new jose.JWKS.KeyStore();
        Object.defineProperties(keystore, clientKeyStoreAdditions);
        keystore.setReferences(this, provider);
        Object.defineProperty(this, 'keystore', {
          configurable: false,
          value: keystore,
        });

        const algs = instance(this).lazyAlgs;
        if (algs) {
          const orig = keystore.all;
          Object.defineProperty(keystore, 'all', {
            value(opts) {
              if (opts && opts.alg && algs.has(opts.alg)) {
                let key;
                if (opts.alg.startsWith('HS')) {
                  key = jose.JWK.asKey({

jose

JWA, JWS, JWE, JWT, JWK, JWKS for Node.js, Browser, Cloudflare Workers, Deno, Bun, and other Web-interoperable runtimes

MIT
Latest version published 18 days ago

Package Health Score

94 / 100
Full package analysis