Module @luolapeikko/oidc-jwt-verify-tachyon
@luolapeikko/oidc-jwt-verify-tachyon

Tachyon drivers for @luolapeikko/oidc-jwt-verify caches
- Tachyon storage driver can be used as public ssl cert caching.
- Tachyon storage driver can be used as validated token caching.
Enable public cert file caching
const certCacheSchema = z.object({certs: z.record(z.string(), z.record(z.string(), z.string())), _ts: z.number()}) satisfies StandardSchemaV1<
unknown,
CertRecords
>;
// with Tachyon file storage driver
await useCache(new TachyonCertCache(new FileStorageDriver({name: 'FileCertCacheDriver', fileName: './unitTestCache.json'}, certCacheBufferSerializer(certCacheSchema))));
Enable verified token persist caching (Tachyon storage driver with encryption)
import {
isRawJwtToken,
type RawJwtToken,
setTokenCache,
} from "@luolapeikko/oidc-jwt-verify";
import { buildTokenCacheBufferSerializer } from "@luolapeikko/oidc-jwt-verify-tachyon";
import {
CryptoBufferProcessor,
FileStorageDriver,
} from "tachyon-drive-node-fs";
import { TachyonExpireCache } from "tachyon-expire-cache";
import { z } from "zod";
const tokenBodySchema = z.object({}).loose(); // or build token payload schema
const tokenCacheMapSchema = z.map(
z.string().refine(isRawJwtToken),
z.object({ expires: z.number(), data: tokenBodySchema }),
);
const bufferSerializer = buildTokenCacheBufferSerializer(tokenCacheMapSchema);
// const stringSerializer = buildTokenCacheStringSerializer<TokenPayload>(tokenCacheMapSchema); // if using string based Tachyon drivers
const processor = new CryptoBufferProcessor(Buffer.from("some-secret-key"));
const driver = new FileStorageDriver(
{ name: "TokenStorageDriver", fileName: "./tokenCache.aes" },
bufferSerializer,
processor,
);
const cache = new TachyonExpireCache<
z.infer<typeof tokenBodySchema>,
RawJwtToken
>({ name: "TachyonExpireCache" }, driver);
setTokenCache(cache);
CertCache
- TachyonCertCache
Other
- CacheMap
- TokenCacheMapSchema
- certCacheBufferSerializer
- certCacheStringSerializer
TokenCache
- buildTokenCacheBufferSerializer
- buildTokenCacheStringSerializer