jwt-generator
Advanced tools
Comparing version 2.0.3 to 2.0.4
@@ -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){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){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:'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; | ||
//# sourceMappingURL=jwt-generator.js.map |
@@ -11,3 +11,3 @@ { | ||
"license": "AGPL-3.0", | ||
"version": "2.0.3", | ||
"version": "2.0.4", | ||
"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
Sorry, the diff of this file is not supported yet
56387
10