shubhattin
shubhattin2mo ago

How to handle Authentication for preloadQuery on the cleint (Better Auth)

I am using Better auth setup with convex in nextjs app router like this. To have user info on the client prefetched
import { api } from '$convex/_generated/api';
import { fetchQuery, preloadQuery } from 'convex/nextjs';
import { getToken } from '~/lib/auth-server';
import List from './List';
import { redirect } from 'next/navigation';

export default async function Home() {
const token = await getToken();
const user = fetchQuery(api.auth.getCurrentUser, {}, { token });
if (!user) redirect('/');
const preloadedRecords = await preloadQuery(api.routes.rentData.getRentData, {}, { token });
return <List preloadedRecords={preloadedRecords} />;
}
import { api } from '$convex/_generated/api';
import { fetchQuery, preloadQuery } from 'convex/nextjs';
import { getToken } from '~/lib/auth-server';
import List from './List';
import { redirect } from 'next/navigation';

export default async function Home() {
const token = await getToken();
const user = fetchQuery(api.auth.getCurrentUser, {}, { token });
if (!user) redirect('/');
const preloadedRecords = await preloadQuery(api.routes.rentData.getRentData, {}, { token });
return <List preloadedRecords={preloadedRecords} />;
}
But on client we get a error as for Authentication verification the token from /api/convex/token has to be fetched which is needed for authentication on convex backend. What could be a alternative Solution besides having a early return by checking the auth via useConvexAuth hook on the client
1 Reply
Convex Bot
Convex Bot2mo ago
Thanks for posting in <#1088161997662724167>. Reminder: If you have a Convex Pro account, use the Convex Dashboard to file support tickets. - Provide context: What are you trying to achieve, what is the end-user interaction, what are you seeing? (full error message, command output, etc.) - Use search.convex.dev to search Docs, Stack, and Discord all at once. - Additionally, you can post your questions in the Convex Community's <#1228095053885476985> channel to receive a response from AI. - Avoid tagging staff unless specifically instructed. Thank you!

Did you find this page helpful?