better-auth
Version:
The most comprehensive authentication framework for TypeScript.
27 lines (26 loc) • 1.04 kB
JavaScript
import { getCurrentAdapter } from "@better-auth/core/context";
//#region src/plugins/jwt/adapter.ts
const getJwksAdapter = (baseAdapter, options) => {
return {
getAllKeys: async (ctx) => {
if (options?.adapter?.getJwks) return await options.adapter.getJwks(ctx);
return await (await getCurrentAdapter(baseAdapter)).findMany({ model: "jwks" });
},
getLatestKey: async (ctx) => {
if (options?.adapter?.getJwks) return (await options.adapter.getJwks(ctx))?.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime())[0];
return (await (await getCurrentAdapter(baseAdapter)).findMany({ model: "jwks" }))?.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime())[0];
},
createJwk: async (ctx, webKey) => {
if (options?.adapter?.createJwk) return await options.adapter.createJwk(webKey, ctx);
return await (await getCurrentAdapter(baseAdapter)).create({
model: "jwks",
data: {
...webKey,
createdAt: /* @__PURE__ */ new Date()
}
});
}
};
};
//#endregion
export { getJwksAdapter };