aegis-auth
Version:
A credentials-based auth solution for Next.js (and other Node projects) with IP rate-limiting, account lockouts, and sessions in DB.
18 lines • 885 B
JavaScript
import { base64Url } from "./base64";
import { createHMAC } from "./hmac";
import { randomBytes } from "./random";
export async function generateSessionToken({ config, }) {
const sessionToken = base64Url.encode(randomBytes(config.session.tokenLengthBytes));
const sessionTokenHash = await createHMAC("SHA-256", "base64urlnopad").sign(config.session.tokenSecret, sessionToken);
return {
sessionToken,
sessionTokenHash,
};
}
export async function signSessionToken({ sessionToken, config, }) {
return await createHMAC("SHA-256", "base64urlnopad").sign(config.session.tokenSecret, sessionToken);
}
export async function verifySessionToken({ sessionToken, sessionTokenHash, config, }) {
return await createHMAC("SHA-256", "base64urlnopad").verify(config.session.tokenSecret, sessionToken, sessionTokenHash);
}
//# sourceMappingURL=sessionToken.js.map