Socket
Socket
Sign inDemoInstall

@connectedcars/jwtutils

Package Overview
Dependencies
Maintainers
3
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@connectedcars/jwtutils - npm Package Compare versions

Comparing version 1.0.10 to 1.0.11

src/httprequest.js

9

bin/jwtdecode.test.js

@@ -27,3 +27,4 @@ 'use strict'

describe('jwtencode', () => {
it('should return ok', done => {
it('should return ok', function(done) {
this.slow(10000)
let jwtEncode = spawn(`${__dirname}/jwtdecode.js`, [

@@ -62,3 +63,5 @@ `${__dirname}/jwtencode.test.pub`,

try {
stdoutStr = Buffer.concat(decodedData).toString('utf8').trim()
stdoutStr = Buffer.concat(decodedData)
.toString('utf8')
.trim()
let decodedBody = JSON.parse(stdoutStr)

@@ -79,3 +82,3 @@ expect(decodedBody, 'to equal', jwtBody)

})
}).slow(2000)
})
})

@@ -20,3 +20,4 @@ 'use strict'

describe('jwtencode', () => {
it('should return ok', done => {
it('should return ok', function(done) {
this.slow(10000)
let jwtEncode = spawn(`${__dirname}/jwtencode.js`, [

@@ -65,3 +66,5 @@ `${__dirname}/jwtencode.test.key`

jwtEncode.stdout.on('end', () => {
let jwt = Buffer.concat(tokenData).toString('utf8').trim()
let jwt = Buffer.concat(tokenData)
.toString('utf8')
.trim()
let decodedBody = JwtUtils.decode(jwt, pubKeys, audiences)

@@ -71,3 +74,3 @@ expect(body, 'to equal', decodedBody)

})
}).slow(2000)
})
})
{
"compilerOptions": {
"target": "esnext",
"module": "commonjs"
"target": "es2016",
"module": "commonjs",
"checkJs": true
},

@@ -6,0 +7,0 @@ "exclude": [

{
"name": "@connectedcars/jwtutils",
"version": "1.0.10",
"version": "1.0.11",
"description": "Zero dependency JWT encoding/decoding for Node",

@@ -28,17 +28,20 @@ "main": "src/index.js",

"devDependencies": {
"@types/mocha": "^2.2.45",
"@types/node": "^8.5.2",
"@types/mocha": "^2.2.46",
"@types/node": "^8.5.8",
"babel-eslint": "^7.2.3",
"benchmark": "^2.1.4",
"coveralls": "^2.13.1",
"eslint": "^4.5.0",
"eslint-config-prettier": "^2.3.0",
"eslint-plugin-prettier": "^2.2.0",
"express": "^4.15.4",
"microtime": "^2.1.6",
"mocha": "^3.5.0",
"nyc": "^11.1.0",
"prettier": "^1.5.3",
"unexpected": "^10.33.2"
}
"coveralls": "^2.13.3",
"eslint": "^4.15.0",
"eslint-config-prettier": "^2.9.0",
"eslint-plugin-prettier": "^2.4.0",
"express": "^4.16.2",
"microtime": "^2.1.7",
"mocha": "^3.5.3",
"nyc": "^11.4.1",
"prettier": "^1.10.2",
"r2": "^2.0.0",
"typescript": "^2.6.2",
"unexpected": "^10.36.2"
},
"dependencies": {}
}

@@ -35,3 +35,3 @@ # node-jwtutils

* [Integrates with Google Identity Platform](sample/googleoauth2v2/README.md)
* [Integrate with Google Identity Platform](sample/googleoauth2v2/README.md)

@@ -164,2 +164,37 @@ ## Basic usage

## Usage of service authentication (Google and Github)
``` javascript
const { JwtServiceAuth } = require('./index')
const fs = require('fs')
const r2 = require('r2')
// Wrap your favorite http library
let httpRequestHandler = async (method, url, headers, body) => { // Fx. POST, http://domain.tld, {}, "..."
// Do http request
let httpRespone = await r2[method.toLowerCase()](url, { headers, body }).response
let data = await httpResponse.arrayBuffer()
return {
statusCode: httpResponse.status,
data: data,
headers: httpResponse.headers
}
})
let jwtServiceAuth = new JwtServiceAuth(httpRequestHandler)
let gitHubAppPrivateKey = fs.readFileSync("user-appname.2017-01-01.private-key.pem", 'utf8')
let googleServiceAccountKeyfile = fs.readFileSync("user-serviceaccount-12345678.json", 'utf8')
async function getAccessTokens() {
let githubAppToken = await = jwtServiceAuth.getGithubAccessToken(gitHubAppPrivateKey, 1, 1)
let googleToken = await jwtServiceAuth.getGoogleAccessToken(googleServiceAccountKeyfile)
}
```
### Documentation
* Github App: https://developer.github.com/apps/building-github-apps/authentication-options-for-github-apps/
* Google Service Account: https://developers.google.com/identity/protocols/OAuth2ServiceAccount
## Generate own keypair

@@ -192,3 +227,3 @@

```
``` text
password password-for-private-key

@@ -216,5 +251,4 @@ {

```
``` text
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ.eyJpc3MiOiJodHRwczovL2p3dC5pbyIsImF1ZCI6ImxvY2FsaG9zdCIsInN1YiI6InN1YmplY3RAZG9tYWluLnRsZCIsImlhdCI6MTUwNDI5MjEyNywibmJmIjoxNTA0MjkyMTI3LCJleHAiOjE1OTg5ODY0NzB9.0L5AWwUF3EleBqnQ6V0Lqa36jCccP4A7cAFHHIY1b-oE7pxCoFr8gnAOrlc16N0WUPI6O17JT79kQIPR-LjFm-BgBycBw4eEFYb8z7iXA-zqgQz4ajZXlIljJtJUBbTupbnzEiBKjEFnTxYqb-vUm-TDwTMPaYzBxqqfOrrvKlw
````

@@ -7,3 +7,5 @@ // @ts-check

const JwtVerifyError = require('./jwtverifyerror')
const JwtServiceAuthError = require('./jwtserviceautherror')
const JwtAuthMiddleware = require('./jwtauthmiddleware')
const JwtServiceAuth = require('./jwtserviceauth')

@@ -15,4 +17,6 @@ module.exports = {

},
JwtVerifyError: JwtVerifyError,
JwtAuthMiddleware: JwtAuthMiddleware,
JwtAuthMiddleware,
JwtServiceAuth,
JwtVerifyError,
JwtServiceAuthError,
// Support old interface

@@ -19,0 +23,0 @@ encode: jwtEncode,

@@ -5,51 +5,13 @@ // @ts-check

const expect = require('unexpected')
const {
rsaPrivateKey,
rsaPublicKey,
ecPrivateKey,
ecPublicKey,
rsaOtherPublicKey
} = require('./testresources')
const { JwtUtils, JwtVerifyError } = require('./index')
const oldJwtUtils = require('./index')
const rsaPublicKey =
'-----BEGIN PUBLIC KEY-----\n' +
'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDdlatRjRjogo3WojgGHFHYLugd\n' +
'UWAY9iR3fy4arWNA1KoS8kVw33cJibXr8bvwUAUparCwlvdbH6dvEOfou0/gCFQs\n' +
'HUfQrSDv+MuSUMAe8jzKE4qW+jK+xQU9a03GUnKHkkle+Q0pX/g6jXZ7r1/xAK5D\n' +
'o2kQ+X5xK9cipRgEKwIDAQAB\n' +
'-----END PUBLIC KEY-----'
const rsaOtherPublicKey =
'-----BEGIN PUBLIC KEY-----\n' +
'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDf6PME6PIAF47/UzLDixmtlLvn\n' +
'RkSGzixmdGJUurUZyz3B2ok5DIYYtdN1LWXmt0BRfA5B9SQAsZ4h9tdAs5zjVUe1\n' +
's9oLHK0++UEM7vowvhqvMmxeVmcABtsx0IoXTryLLKcrdJQfmmeAItZAyYbz6Tzp\n' +
'O6x06JSme6Xy0lOQawIDAQAB\n' +
'-----END PUBLIC KEY-----'
const rsaPrivateKey =
'-----BEGIN RSA PRIVATE KEY-----\n' +
'MIICWwIBAAKBgQDdlatRjRjogo3WojgGHFHYLugdUWAY9iR3fy4arWNA1KoS8kVw\n' +
'33cJibXr8bvwUAUparCwlvdbH6dvEOfou0/gCFQsHUfQrSDv+MuSUMAe8jzKE4qW\n' +
'+jK+xQU9a03GUnKHkkle+Q0pX/g6jXZ7r1/xAK5Do2kQ+X5xK9cipRgEKwIDAQAB\n' +
'AoGAD+onAtVye4ic7VR7V50DF9bOnwRwNXrARcDhq9LWNRrRGElESYYTQ6EbatXS\n' +
'3MCyjjX2eMhu/aF5YhXBwkppwxg+EOmXeh+MzL7Zh284OuPbkglAaGhV9bb6/5Cp\n' +
'uGb1esyPbYW+Ty2PC0GSZfIXkXs76jXAu9TOBvD0ybc2YlkCQQDywg2R/7t3Q2OE\n' +
'2+yo382CLJdrlSLVROWKwb4tb2PjhY4XAwV8d1vy0RenxTB+K5Mu57uVSTHtrMK0\n' +
'GAtFr833AkEA6avx20OHo61Yela/4k5kQDtjEf1N0LfI+BcWZtxsS3jDM3i1Hp0K\n' +
'Su5rsCPb8acJo5RO26gGVrfAsDcIXKC+bQJAZZ2XIpsitLyPpuiMOvBbzPavd4gY\n' +
'6Z8KWrfYzJoI/Q9FuBo6rKwl4BFoToD7WIUS+hpkagwWiz+6zLoX1dbOZwJACmH5\n' +
'fSSjAkLRi54PKJ8TFUeOP15h9sQzydI8zJU+upvDEKZsZc/UhT/SySDOxQ4G/523\n' +
'Y0sz/OZtSWcol/UMgQJALesy++GdvoIDLfJX5GBQpuFgFenRiRDabxrE9MNUZ2aP\n' +
'FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n' +
'-----END RSA PRIVATE KEY-----'
const ecPrivateKey =
'-----BEGIN EC PRIVATE KEY-----\n' +
'MHQCAQEEIEbBJ5shjRhQjmWZQfBu8t069BolPpmZjg+c2mSqr8BkoAcGBSuBBAAK\n' +
'oUQDQgAEgYq9+AtlLZMXL2g61gwOG3vPQPeaWQD+3JcRUdcwdZm4duMXQZrwVBSr\n' +
'5Kunr1NnK+0VCrcoUh09GFr8UTAq3g==\n' +
'-----END EC PRIVATE KEY-----'
const ecPublicKey =
'-----BEGIN PUBLIC KEY-----\n' +
'MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEgYq9+AtlLZMXL2g61gwOG3vPQPeaWQD+\n' +
'3JcRUdcwdZm4duMXQZrwVBSr5Kunr1NnK+0VCrcoUh09GFr8UTAq3g==\n' +
'-----END PUBLIC KEY-----\n'
const unixNow = Math.floor(Date.now() / 1000)

@@ -56,0 +18,0 @@

// @ts-check
'use strict'
const expect = require('unexpected')
const { ecPrivateKey, ecPublicKey } = require('./testresources')
const express = require('express')

@@ -8,17 +11,3 @@ const app = express()

const { JwtUtils, JwtAuthMiddleware, JwtVerifyError } = require('./index')
const expect = require('unexpected')
const ecPrivateKey =
'-----BEGIN EC PRIVATE KEY-----\n' +
'MHQCAQEEIEbBJ5shjRhQjmWZQfBu8t069BolPpmZjg+c2mSqr8BkoAcGBSuBBAAK\n' +
'oUQDQgAEgYq9+AtlLZMXL2g61gwOG3vPQPeaWQD+3JcRUdcwdZm4duMXQZrwVBSr\n' +
'5Kunr1NnK+0VCrcoUh09GFr8UTAq3g==\n' +
'-----END EC PRIVATE KEY-----'
const ecPublicKey =
'-----BEGIN PUBLIC KEY-----\n' +
'MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEgYq9+AtlLZMXL2g61gwOG3vPQPeaWQD+\n' +
'3JcRUdcwdZm4duMXQZrwVBSr5Kunr1NnK+0VCrcoUh09GFr8UTAq3g==\n' +
'-----END PUBLIC KEY-----\n'
const jwtHeader = {

@@ -25,0 +14,0 @@ typ: 'JWT',

@@ -154,3 +154,3 @@ // @ts-check

function validateExpires(body, unixNow, options = {}) {
function validateExpires(body, unixNow, options) {
if (!body.exp) {

@@ -157,0 +157,0 @@ throw new JwtVerifyError(`No expires set on token`)

@@ -5,52 +5,14 @@ // @ts-check

const expect = require('unexpected')
const {
rsaPublicKeyEncrypted,
rsaPrivateKeyEncrypted
} = require('./testresources')
const { JwtUtils } = require('./index')
const rsaPrivateKeyEncrypted =
'-----BEGIN RSA PRIVATE KEY-----\n' +
'Proc-Type: 4,ENCRYPTED\n' +
'DEK-Info: AES-256-CBC,F8DFFBFC89ACC93CC604E18608B412C4\n' +
'\n' +
'UUGCEuSDg8xiy504WKQ4Fg9Xeen1JYxhhO/3vEjfjSgaSf7e3LJWv6jp5KQTfRD5\n' +
'5lfTI1mHt7NqEziUc5ERq3ueO5x0qtoLNaIsXwXu0/0ex98pjVz6KHnwCB3UqbhZ\n' +
'PJsyfjdA0dyTUjGZZApDRqbK3FedRHL980VknX+r2LMskYEtY0YZiHurRLt8U0Ph\n' +
'q9G2LaNwddZzTTCRVSISl1zYLeMrNk7Tdfkwctlhd1a4RKAe8ymXHinE00nMXbio\n' +
'fJvvCMzPFGvvaRJVKWLyxerZ0Weh0oGXftAgICvOz7AiajQbs7qLBV92I+VPlvQw\n' +
'515VuZYqupTkGoc5SQhBSzMGBS+kJa5/+IrNx/pjEUc9m4sb2Pr9IXbPFrZhtyAR\n' +
'JeYxx2keodFeg/sM0GQWUM0yt807DoQflnLa/hVFI9/OzpfHhe4ToaoLNVCAez2L\n' +
'pAB4HDgu0AbTyt+ffx3yQwfLZHsa90V/+cr1/AXlYUSHu3rSar2WSNpeWsUDsebe\n' +
'0nQeu7w/WZt0v9l1Cz6s30GpdYQNuPoqLl+66mgAY9eUmvg7JpHnfCllpTiox0Mo\n' +
'LmkQSyjZNjmBLX4cr9TAUpXTR7CwGMCw1fv/PDhVabxDQebH52aPOILV6Fo4Mqho\n' +
'ZQ07SdsybKXyoVahOWdxAMfgKt8H3hApCJqDCrvuIur1CXtUCMiG5yNmOM2RuBpr\n' +
'WFY7ofqJtKGSP90m3FZRFdP7iL1MM4iZ3WOFyTby//NLQvSVNfCU209DzpACQ/BI\n' +
'CHUJLSJG8rA4HZKqViqqZP54iCZRw48jH+jeNP7+z8BLHfs2MN3x21EolIh0l2BO\n' +
'awExA8/8HcZGb0ERsInwD3Rh7px8oGy9A6vd6sxaCEr1CmKCKrayyqPga6mRNDUD\n' +
'rJZ00eyV76VuG9+SryBrf9iUF6iahLC2+RkQrKh1dVElsHS6a3OAoJHgZGbEH0g7\n' +
'BpozW7gljjlin0C+SgfDYJpsCbYMwf/SjtG8EJ0Q0t9SAhBpBDDcTCLY9q5j2gFU\n' +
'0wA6fVsdobWsfzZWd8RDVAiIGDwk9KTeV27+YKrwmyAxXn+82zZyePT/oMmjuqCL\n' +
'W62K8rXqMXsSdUXMJWKtHIliigtcBw9XZNK8puP0M2xq0UMu4rlQ4dlyNBYHgQSi\n' +
'zqR+KqnKARPY9l+/T2JrapCn7h+4ycTRV8X39XKWXZY2KARinTg7elR6GMZccuum\n' +
'B6QG4fTUPfyy7i7m6Vl2QT++/npnQYR56Hns3KLjnozu0oSxj7qXQdqNBa4Y48CX\n' +
'ByNAZM2QUWus41GYZRjEux4QjnSvtOCOA9auQN27I/oDjVjKG1fv/lnGSvCEctxz\n' +
'8oHI8k2cRUXwm+tJh+HMrLnMGKdt09WAutjEU4fQJQX8YOTpNelNScTXKF0nwxOD\n' +
'UvYNdLs/uC9ai2GBOqO6Wz6FSQFDp58PEl2G+4GQiQ8bveAbzIpxyu8gZvNRxuyM\n' +
'ClA5F7rL4oeR0dX2yeyl2Tjx6tdaU9ZN21+viJGmn4zyjc81ccbHK/zxFFQeg3JU\n' +
'xTOAv3qeIZC+QDzviraeGAEnzpTAHejXDWLfH0G1AfP0mZ4SjTTTZPLRfdVfqUnu\n' +
'-----END RSA PRIVATE KEY-----\n'
const rsaPublicKey =
'-----BEGIN PUBLIC KEY-----\n' +
'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqFvlHi5dBWLyDNsspY3c\n' +
'OHdK8UNhuyFJHQJ3qjVQqpc2W7LDNKbsC3YUxShH9j8HyRYz3kbEPvEHT2dV2jqG\n' +
'0jvDRFldqri963FFk+0K8quOAezngbp51/x64w7DQjDp8SIYWkvYFpaAS7AU4AM5\n' +
'AzUsftbsxDo4QpNtadY9Xh1p6vWK4k2dLwQ2Ara8AjuI6C+APkFp3wle/U21YO11\n' +
'FTKgBPGWLLJ/oG7+GrT/UJLgtiPJtNVPciBDDa6XxTeeeVp4op10MZVjDQK8szPA\n' +
'x0tWXhqnAe5EL7ZljQT/BF2+dxT8ZQbp+tMXC0YVMwqjV6DJwt+cDQ7U7cDnknQ0\n' +
'iQIDAQAB\n' +
'-----END PUBLIC KEY-----\n'
const pubKeys = {
'test@test.com': {
'1@RS256': rsaPublicKey,
'1@RS384': rsaPublicKey,
'1@RS512': rsaPublicKey
'1@RS256': rsaPublicKeyEncrypted,
'1@RS384': rsaPublicKeyEncrypted,
'1@RS512': rsaPublicKeyEncrypted
}

@@ -57,0 +19,0 @@ }

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