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

authbox

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

authbox - npm Package Compare versions

Comparing version 0.8.1 to 0.9.1

77

lib/Client.js

@@ -19,2 +19,14 @@ 'use strict';

function getAuthboxData(req) {
req._authbox = req._authbox || {};
req._authbox.fired = req._authbox.fired || {
check: false,
log: false
};
req._authbox.checkedAction = req._authbox.checkedAction || null;
req._authbox.checkedVerdictType = req._authbox.checkedVerdictType || null;
return req._authbox;
}
var Client = {

@@ -36,8 +48,10 @@ config: {

sendDefaultAction: function(request) {
if (request._authboxFiredAction) {
logDefaultAction: function(request) {
var authboxData = getAuthboxData(request);
if (authboxData.fired.log) {
return;
}
Client._check('/action', request);
Client._log(request, authboxData.checkedAction);
},

@@ -49,27 +63,52 @@

_ensureOneAction: function(request, cb) {
if (request._authboxFiredAction) {
var message = 'You can only fire 1 Client check per HTTP request';
console.warn('AUTHBOX: ' + message);
cb(message, null);
return;
_ensureOneRequest: function(type, request, cb) {
var authboxData = getAuthboxData(request);
invariant(authboxData.fired.hasOwnProperty(type), 'Bad type name: %s', type);
if (authboxData.fired[type]) {
var message = 'You can only fire 1 %s per HTTP request';
console.warn('AUTHBOX: ' + message, type);
if (cb) {
cb(message, null);
}
return true;
}
request._authboxFiredAction = true;
authboxData.fired[type] = true;
return false;
},
check: function(request, action, cb) {
Client._ensureOneAction(request, cb);
Client._check('/action', request, action, cb);
if (Client._ensureOneRequest('check', request, cb)) {
return;
}
var authboxData = getAuthboxData(request);
authboxData.checkedAction = action;
Client._fire('/action_check', request, action, function(verdict) {
authboxData.checkedVerdictType = verdict.type;
return cb.apply(this, arguments);
});
},
begin: function(request, action, cb) {
Client._ensureOneAction(request, cb);
Client._check('/action_begin', request, action, cb);
log: function(request, action) {
if (Client._ensureOneRequest('log', request)) {
return;
}
Client._log(request, action);
},
end: function(request, action, cb) {
Client._check('/action_end', request, action, cb);
_log: function(request, action) {
var authboxData = getAuthboxData(request);
if (authboxData.fired.check && authboxData.checkedVerdictType !== 'ALLOW') {
return;
}
Client._fire('/action_log', request, action);
},
_check: function(endpoint, req, action, cb) {
_fire: function(endpoint, req, action, cb) {
action = action || {};

@@ -112,3 +151,3 @@ cb = cb || emptyFunction;

parsedResponse = JSON.parse(body);
invariant(typeof parsedResponse.type === 'string', 'verdict did not include a type key');
invariant(typeof parsedResponse.type === 'string', 'verdict did not include a type key: ' + body + ' ' + Client.config.endpoint + endpoint);
} catch (e) {

@@ -115,0 +154,0 @@ // fail open

@@ -9,3 +9,2 @@ 'use strict';

var emptyFunction = require('authbox-common/emptyFunction');
var invariant = require('authbox-common/invariant');
var os = require('os');

@@ -53,3 +52,3 @@ var sha256 = require('sha256');

cb(null, {
$endpointURL: req.url,
$endpointURL: req.originalUrl,
$ipAddress: getIP(req),

@@ -96,5 +95,4 @@ $localMachineID: {

req._authbox = req._authbox || {
isNewLocalMachineID: false
};
req._authbox = req._authbox || {};
req._authbox.isNewLocalMachineID = req._authbox.isNewLocalMachineID || false;

@@ -120,3 +118,3 @@ if (!localMachineID) {

res.on('finish', function() {
Client.sendDefaultAction(req);
Client.logDefaultAction(req);
});

@@ -123,0 +121,0 @@ }

{
"name": "authbox",
"version": "0.8.1",
"version": "0.9.1",
"description": "",

@@ -5,0 +5,0 @@ "main": "lib/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