Catalog npm
PACKAGE EXPLORERView in registry

2fab64

npm

A Secure Auth Package For APIS 2FAbcrypt64

Versions collected2
Direct dependencies1From release 1.0.1
Last observed20 Oct, 19:13 UTC

README

Current package documentation

2FAB64

2FAB is a secure auth token generator Source code:

const { Database } = require("bun:sqlite");
const db = new Database();

const inMemoryStore = db.query(`
CREATE TABLE IF NOT EXISTS tokenStore (
  token TEXT,
  uses INTEGER,
  usesLimit INTEGER, -- Make sure this column exists to match your INSERT statement
  date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
`).run()


  

const deleteToken = db.query("DELETE FROM tokenStore WHERE token = $token");
function randomString(length) {
    let result = '';
    const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
    const charactersLength = characters.length;
    let counter = 0;
    while (counter < length) {
        result += characters.charAt(Math.floor(Math.random() * charactersLength));
        counter += 1;
    }
    return result;
}

async function generateSecureToken(cost, stringLength, uses) {
    const token = await Bun.password.hash(randomString(stringLength), {
        algorithm: "bcrypt",
        cost: cost,
    });
    db.query("INSERT INTO tokenStore (token, uses, usesLimit) VALUES ($token, $uses, $usesLimit)")
    .run({ $token: token, $uses:  0, $usesLimit: uses });
    return await token
}

async function validateSecureToken(token) {
    if (!inMemoryStore.get({ $token: token })) {
        const findTokenData = inMemoryStore.get({ $token: token });
        if (findTokenData.uses > findTokenData.usesLimit || findTokenData == findTokenData.usesLimit) {
            return false
        }
        return false
    }
    return true
}

async function destroySecureToken(token) {
    // Query to check if the token exists
    const tokenExistsQuery = db.query("SELECT * FROM tokenStore WHERE token = $token");
    // Execute the query with the given token
    const tokenData = await tokenExistsQuery.get({ $token: token });
    if (!tokenData) {
        console.error("Token does not exist");
        return;
    }
    // If the token exists, delete it
    deleteToken.run({ $token: token });
    console.log("Token destroyed");
}


module.exports = { destroySecureToken, validateSecureToken, generateSecureToken }

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 2

Collected releases
VersionPublishedDirect dependenciesOpen version
1.0.1Registry latest11 Feb 20241
1.0.011 Feb 20241

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:13 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:1e99cc581d1081c224353e03ad73d4d1309014fdad9d7855493cbc57f85c05ac