/opt/canhelp/node_modules/better-auth/dist/plugins/jwt
NameSizeModeActions
adapter.mjs9150644editdlrm
adapter.mjs.map22250644editdlrm
client.d.mts10180644editdlrm
client.mjs4520644editdlrm
client.mjs.map13050644editdlrm
index.d.mts67920644editdlrm
index.mjs70680644editdlrm
index.mjs.map158510644editdlrm
schema.d.mts4720644editdlrm
schema.mjs3550644editdlrm
schema.mjs.map8250644editdlrm
sign.d.mts17070644editdlrm
sign.mjs27260644editdlrm
sign.mjs.map65610644editdlrm
types.d.mts59520644editdlrm
utils.d.mts12720644editdlrm
utils.mjs21400644editdlrm
utils.mjs.map38760644editdlrm
verify.d.mts4580644editdlrm
verify.mjs17010644editdlrm
verify.mjs.map33810644editdlrm
Edit: /opt/canhelp/node_modules/better-auth/dist/plugins/jwt/verify.mjs (1701B)
import { getJwksAdapter } from "./adapter.mjs"; import { getCurrentAuthContext } from "@better-auth/core/context"; import { base64 } from "@better-auth/utils/base64"; import { importJWK, jwtVerify } from "jose"; //#region src/plugins/jwt/verify.ts /** * Verify a JWT token using the JWKS public keys * Returns the payload if valid, null otherwise */ async function verifyJWT(token, options) { const ctx = await getCurrentAuthContext(); try { const parts = token.split("."); if (parts.length !== 3) return null; const headerStr = new TextDecoder().decode(base64.decode(parts[0])); const kid = JSON.parse(headerStr).kid; if (!kid) { ctx.context.logger.debug("JWT missing kid in header"); return null; } const keys = await getJwksAdapter(ctx.context.adapter, options).getAllKeys(ctx); if (!keys || keys.length === 0) { ctx.context.logger.debug("No JWKS keys available"); return null; } const key = keys.find((k) => k.id === kid); if (!key) { ctx.context.logger.debug(`No JWKS key found for kid: ${kid}`); return null; } const cryptoKey = await importJWK(JSON.parse(key.publicKey), key.alg ?? options?.jwks?.keyPairConfig?.alg ?? "EdDSA"); const baseURLOrigin = typeof ctx.context.options.baseURL === "string" ? ctx.context.options.baseURL : void 0; const { payload } = await jwtVerify(token, cryptoKey, { issuer: options?.jwt?.issuer ?? baseURLOrigin, audience: options?.jwt?.audience ?? baseURLOrigin }); if (!payload.sub || !payload.aud) return null; return payload; } catch (error) { ctx.context.logger.debug("JWT verification failed", error); return null; } } //#endregion export { verifyJWT }; //# sourceMappingURL=verify.mjs.map