i am using sveltekit and i'm a bit unclear on how to get the current user's session from the server side.
thisi s what i have so far // src/lib/server/appwrite.js import { Client, Account } from 'node-appwrite'; import { APPWRITE_KEY } from '$env/static/private'; import { PUBLIC_APPWRITE_ENDPOINT, PUBLIC_APPWRITE_PROJECT } from '$env/static/public';
export const SESSION_COOKIE = 'my-custom-session';
export function createAdminClient() { const client = new Client() .setEndpoint(PUBLIC_APPWRITE_ENDPOINT) .setProject(PUBLIC_APPWRITE_PROJECT) .setKey(APPWRITE_KEY); // Set the Appwrite API key!
// Return the services we want to use.
return {
get account() {
return new Account(client);
}
};
}
export function createSessionClient(event) { const client = new Client() .setEndpoint(PUBLIC_APPWRITE_ENDPOINT) .setProject(PUBLIC_APPWRITE_PROJECT);
// Extract our custom domain's session cookie from the request
const session = event.cookies.get(SESSION_COOKIE);
if (!session) {
throw new Error("No user session");
}
client.setSession(session);
// Return the services we want to use.
return {
get account() {
return new Account(client);
}
};
}
// src/routes/+page.server.js import { redirect } from '@sveltejs/kit'; export async function load({ locals }) { // Access our user from locals. if (!locals.user) { // If no user is logged in, redirect to the sign up page. redirect(301, '/login'); } // If the user is logged in, redirect to the account page. redirect(301, '/'); }
Recommended threads
- Bug: TOTP MFA verification always fails ...
*Bug: TOTP MFA verify always returns `user_invalid_token` (Cloud 1.8.1, Frankfurt)** Project ID: `68dd48440003e537d849` SDK: `appwrite@18.2.0` (also tested wit...
- User Filter/Sorting/Analytics
Currently the dashboard for users is very limited. I would like to have an option to sort by column and also to filter by column, to for example find users that...
- Unable to verify user through console du...
Hi, I am manually trying to verify a user through the console, but it is coming back with Server Error and not much detail