jwt-generator
Advanced tools
Comparing version 2.0.4 to 2.0.5
@@ -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
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
56913
25