Files
veridian/app/plugins/auth.server.ts
T

31 lines
954 B
TypeScript

import { assert } from "~~/utils/assert";
export default defineNuxtPlugin({
name: 'better-auth-fetch-plugin',
enforce: 'pre',
async setup(nuxtApp) {
const triplit = useTriplitClient();
// Flag if request is cached
nuxtApp.payload.isCached = Boolean(useRequestEvent()?.context.cache);
if (nuxtApp.payload.serverRendered && !nuxtApp.payload.prerenderedAt && !nuxtApp.payload.isCached) {
const { session, fetchSession } = useAuth();
if (!session.value) {
const result = await fetchSession();
if (!result.ok) {
console.error('Failed to fetch session:', result.error);
return;
}
}
if (!session.value) return;
assert('updateOptions' in triplit);
triplit.updateOptions({
token: session.value.token,
});
}
},
});