IKHSAN
EN Read in EnglishID

pixies

Publik
Branch
master
Commit terakhir
9b0697f26 Oktober 2026

passwordHeader.js

Buka raw
export const passwordHeaderNames = ["x-password", "password"];

const decode = (value) => {
    try {
        return decodeURIComponent(value);
    } catch {
        return null;
    }
};

const asUtf8 = (value) => {
    const decoded = Buffer.from(value, "latin1").toString("utf8");
    return decoded.includes("�") ? null : decoded;
};

export const readPasswords = (req) => {
    const [encoded, plain] = passwordHeaderNames.map(name => req.headers[name]);

    return [encoded && decode(encoded), plain, plain && asUtf8(plain)]
        .filter((candidate, index, all) => candidate && all.indexOf(candidate) === index);
};

export const writePasswordHeaders = (password) => {
    if (!password || password === "none") return {};

    const headers = {"x-password": encodeURIComponent(password)};
    if (/^[\x00-\xFF]*$/.test(password)) headers.password = password;

    return headers;
};
byte
895
baris
31
Jenis
js
Commit terakhir
26 Oktober 2026