Socket
Socket
Sign inDemoInstall

jsonwebtoken

Package Overview
Dependencies
Maintainers
2
Versions
81
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jsonwebtoken - npm Package Compare versions

Comparing version 0.1.0 to 0.2.0

LICENSE.md

34

index.js
var jws = require('jws');
var moment = require('moment');
module.exports.decode = function (jwt) {
return jws.decode(jwt).payload;
};
module.exports.sign = function(payload, secretOrPrivateKey, options) {

@@ -8,3 +12,3 @@ options = options || {};

var header = {typ: 'JWT', alg: options.algorithm || 'HS256'};
if (options.expiresInMinutes)
if (options.expiresInMinutes)
payload.exp = moment().add('minutes', options.expiresInMinutes).utc().unix();

@@ -14,6 +18,6 @@

payload.aud = options.audience;
if (options.issuer)
payload.iss = options.issuer;
if (options.subject)

@@ -43,23 +47,23 @@ payload.sub = options.subject;

return callback(new Error('invalid signature'));
var jwt = jws.decode(jwtString);
if (jwt.payload.exp) {
if (moment().utc().unix() >= jwt.payload.exp)
var payload = this.decode(jwtString);
if (payload.exp) {
if (moment().utc().unix() >= payload.exp)
return callback(new Error('jwt expired'));
}
if (jwt.payload.aud && options.audience) {
if (jwt.payload.aud !== options.audience)
return callback(new Error('jwt audience invalid. expected: ' + jwt.payload.aud));
if (payload.aud && options.audience) {
if (payload.aud !== options.audience)
return callback(new Error('jwt audience invalid. expected: ' + payload.aud));
}
if (jwt.payload.iss && options.issuer) {
if (jwt.payload.iss !== options.issuer)
return callback(new Error('jwt issuer invalid. expected: ' + jwt.payload.iss));
if (payload.iss && options.issuer) {
if (payload.iss !== options.issuer)
return callback(new Error('jwt issuer invalid. expected: ' + payload.iss));
}
callback(null, jwt.payload);
callback(null, payload);
};
{
"name": "jsonwebtoken",
"version": "0.1.0",
"version": "0.2.0",
"description": "JSON Web Token implementation (symmetric and asymmetric)",

@@ -5,0 +5,0 @@ "main": "index.js",

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