node-auth SKILL.md skillA

node-auth from tanq16/claudex is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add tanq16/claudex/node-auth@git:20260818.236909b

Pins git:20260818.236909b in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
tanq16/claudex
Path
internal/embedded/presets/private/skills/node-auth/SKILL.md
Versions recorded
1
Latest version
git:20260818.236909b, committed Aug 18, 2026
Size
7,466 bytes
Repository stars
3
License
none declared

Password and session-cookie authentication for a Node Web Only server, built entirely on node:crypto. Use when adding a login flow, hashing or verifying a password, issuing or validating a session, setting a cookie, or protecting a route. Triggers on scrypt, timingSafeEqual, createHmac, Set-Cookie, HttpOnly, SameSite, users.json, session tokens, and any mention of bcrypt, jsonwebtoken, or passport.

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

# Node Auth

**scrypt for passwords, an HMAC-signed token for sessions, and an `HttpOnly` cookie to carry it. No auth framework and no database.**

`node:crypto` covers all of it, so the login path adds no dependency, no middleware chain, and no session store to operate.

## Password Hashing

`scrypt` is the memory-hard key derivation function `node:crypto` exposes. Memory hardness is what makes a stolen hash expensive to attack on a GPU, which a plain SHA-256 is not.

Each password gets a fresh 16-byte salt, and the stored value is `salt:derivedKey` in hex. A per-user salt means two users with the same password produce different hashes, so one cracked hash reveals nothing about the other account.

Verification compares with `timingSafeEqual`, because a normal comparison returns faster the earlier it finds a mismatched byte, and that timing difference is enough to recover the expected value one byte at a time.

```js
import { randomBytes, scrypt, timingSafeEqual } from 'node:crypto';
import { promisify } from 'node:util';

const scryptAsync = promisify(scrypt);
const KEY_LEN = 64;

export async function hashPassword(password) {
    const salt = randomBytes(16);
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add tanq16/claudex/node-auth@sha256:9675312164769c1a

The line at the top of this page pins the label git:20260818.236909b, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_h46p2rfcf2b475s2.svg)](https://markdownregistry.com/a/art_h46p2rfcf2b475s2)

7 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 1 version of this file, committed on Aug 18, 2026.

versioncommittedcommitsizeaudit
git:20260818.236909b latest2026-08-18 236909b 7,466 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (7466 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

tanq16/claudex · 3 stars · license none declared · pushed 2026-10-12 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_h46p2rfcf2b475s2
GET https://markdownregistry.com/api/v1/resolve?ref=tanq16/claudex/node-auth
GET https://markdownregistry.com/api/v1/blob/9675312164769c1ac35eba1758f07274ba85bf4e54777dd7e99287cd43a7cc09

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from tanq16/claudex

agents-md SKILL.md skill
tanq16/claudex · internal/embedded/default-skills/agents-md/SKILL.md · Writes and edits the rules in an instruction file, whether that is `AGENTS.md`, the `CLAUDE.md` symlinked to it, or a…
git:20260910.774b1b6 · audit A · 3 stars
session-summary SKILL.md skill
tanq16/claudex · internal/embedded/default-skills/session-summary/SKILL.md · User-invoked session handoff. `/session-summary pause` writes a structured resume file capturing what the session was…
git:20260825.98d7cfe · audit A · 3 stars
skill-creator SKILL.md skill
tanq16/claudex · internal/embedded/default-skills/skill-creator/SKILL.md · User-invoked skill author. Writes or edits a skill (the frontmatter, the body, and any reference files) in the Agent…
git:20260910.6167cdf · audit A · 3 stars
write-document SKILL.md skill
tanq16/claudex · internal/embedded/default-skills/write-document/SKILL.md · Settles what a standalone document should be before it is written: whether a file is the right output at all, who…
git:20260819.70031cb · audit A · 3 stars
chrome-extension SKILL.md skill
tanq16/claudex · internal/embedded/presets/private/skills/chrome-extension/SKILL.md · Chrome extension structure, Manifest V3, the popup, content scripts, service workers, and storage. Use when creating an…
git:20260823.82d58cc · audit B · 3 stars
develop SKILL.md skill
tanq16/claudex · internal/embedded/presets/private/skills/develop/SKILL.md · The entry point for any coding work in a project that has these skills installed - implementing a feature, changing or…
git:20260911.4b91989 · audit A · 3 stars
dockerize SKILL.md skill
tanq16/claudex · internal/embedded/presets/private/skills/dockerize/SKILL.md · Containerizing any project - multi-stage builds, choosing a base image, packaging the runtime, clearing package-manager…
git:20260827.716177c · audit A · 3 stars
github-release-workflow SKILL.md skill
tanq16/claudex · internal/embedded/presets/private/skills/github-release-workflow/SKILL.md · The GitHub Actions release workflow and the semver commit-marker convention. Use when creating or changing…
git:20260827.716177c · audit A · 3 stars
go-cli-commands SKILL.md skill
tanq16/claudex · internal/embedded/presets/private/skills/go-cli-commands/SKILL.md · The surface a Go CLI command exposes - the baseline every tool starts at, the two purchases on top of it, flag…
git:20260911.fb4fb25 · audit A · 3 stars
go-cli-output SKILL.md skill
tanq16/claudex · internal/embedded/presets/private/skills/go-cli-output/SKILL.md · The utils printer for Go CLI tools - the two output tiers behind --debug, the Print* API, table rendering, terminal…
git:20260911.4b91989 · audit A · 3 stars
go-cli-progress SKILL.md skill
tanq16/claudex · internal/embedded/presets/private/skills/go-cli-progress/SKILL.md · The progress surface for Go CLI tools - the two-line live block, the in-place meter carrying rate and ETA, how it…
git:20260913.7385f82 · audit A · 3 stars
go-cli-prompts SKILL.md skill
tanq16/claudex · internal/embedded/presets/private/skills/go-cli-prompts/SKILL.md · Interactive input for Go CLI tools - when a prompt is the right channel at all, how a value resolves from a flag then…
git:20260826.6314f56 · audit A · 3 stars

Every file in tanq16/claudex

Browse by kind, by grade A, or by owner.