New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

jwt-generator

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jwt-generator - npm Package Compare versions

Comparing version 2.0.4 to 2.0.5

2

lib/jwt-generator.js

@@ -1,2 +0,2 @@

'use strict';var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function')}}var EXPIRATION_IN_SECONDS=300;var jwt=require('jsonwebtoken');var Promise=require('bluebird');var http=require('http-as-promised');var url=require('url');var cacheOptions={max:10,maxAge:Math.floor(EXPIRATION_IN_SECONDS*1000*0.9),maxElements:1000};var cache=require('lru-cache')(cacheOptions);var JWTGenerator=function(){function JWTGenerator(loginUrl,privateKey,issuer){_classCallCheck(this,JWTGenerator);this.issuer=issuer;this.loginUrl=loginUrl;this.privateKey=privateKey}_createClass(JWTGenerator,[{key:'_getKey',value:function _getKey(subject,audience,payload){return'issuer: '+this.issuer+'\nloginUrl: '+this.loginUrl+'\nprivateKey: '+this.privateKey+'\nsubject: '+subject+'\naudience: '+audience+'\npayload: '+JSON.stringify(payload)}},{key:'make',value:function make(subject,audience,payload,expiresIn){payload=Object.assign({},payload);delete payload.exp;var key=this._getKey(subject,audience,payload);var token=cache.get(key);if(token){return Promise.resolve(token)}token=jwt.sign(payload,this.privateKey,{algorithm:'RS256',audience:audience||'urn:home-automation/*',expiresIn:expiresIn||EXPIRATION_IN_SECONDS,/* default: ten minutes*/issuer:this.issuer,subject:subject});return Promise.resolve(http({url:url.resolve(this.loginUrl,'tokens'),method:'POST',auth:{bearer:token},json:true,resolve:'body'})).get('token').tap(function(token){return cache.set(key,token)})}},{key:'makeNew',value:function makeNew(subject,audience,payload,expiresIn){payload=Object.assign({},payload);delete payload.exp;var key=this._getKey(subject,audience,payload);cache.del(key);return this.make(subject,audience,payload,expiresIn)}}]);return JWTGenerator}();module.exports=JWTGenerator;
'use strict';var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function')}}var EXPIRATION_IN_SECONDS=300;var jwt=require('jsonwebtoken');var Promise=require('bluebird');var http=require('http-as-promised');var url=require('url');var cacheOptions={max:10,maxAge:Math.floor(EXPIRATION_IN_SECONDS*1000*0.9),maxElements:1000};var cache=require('lru-cache')(cacheOptions);var JWTGenerator=function(){function JWTGenerator(loginUrl,privateKey,issuer){_classCallCheck(this,JWTGenerator);this.issuer=issuer;this.loginUrl=loginUrl;this.privateKey=privateKey}_createClass(JWTGenerator,[{key:'_getKey',value:function _getKey(subject,audience,payload){return'issuer: '+this.issuer+'\nloginUrl: '+this.loginUrl+'\nprivateKey: '+this.privateKey+'\nsubject: '+subject+'\naudience: '+audience+'\npayload: '+JSON.stringify(payload)}},{key:'_deleteJWTPayloadKeys',value:function _deleteJWTPayloadKeys(payload){payload=Object.assign({},payload);delete payload.aud;delete payload.exp;delete payload.iss;delete payload.sub;delete payload.jti;return payload}},{key:'make',value:function make(subject,audience,payload,expiresIn){payload=this._deleteJWTPayloadKeys(payload);var key=this._getKey(subject,audience,payload);var token=cache.get(key);if(token){return Promise.resolve(token)}token=jwt.sign(payload,this.privateKey,{algorithm:'RS256',audience:audience||'urn:home-automation/*',expiresIn:expiresIn||EXPIRATION_IN_SECONDS,/* default: ten minutes*/issuer:this.issuer,subject:subject});return Promise.resolve(http({url:url.resolve(this.loginUrl,'tokens'),method:'POST',auth:{bearer:token},json:true,resolve:'body'})).get('token').tap(function(token){return cache.set(key,token)})}},{key:'makeNew',value:function makeNew(subject,audience,payload,expiresIn){payload=this._deleteJWTPayloadKeys(payload);var key=this._getKey(subject,audience,payload);cache.del(key);return this.make(subject,audience,payload,expiresIn)}}]);return JWTGenerator}();module.exports=JWTGenerator;
//# sourceMappingURL=jwt-generator.js.map

@@ -11,3 +11,3 @@ {

"license": "AGPL-3.0",
"version": "2.0.4",
"version": "2.0.5",
"description": "Generates 'json web token' (JWT) by using the API of the authentication server.",

@@ -14,0 +14,0 @@ "main": "lib/index.js",

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc