¿Cómo se accede a una sesión en un punto final en sveltekit? He intentado esto pero sin suerte:
import { get } from 'svelte/store'; import { getStores} from "$app/stores"; function getUser() { // <- call this at component initialization const { session } = getStores(); return { current: () => get(session).user } }El almacén de sesión solo funciona dentro de componentes esbeltos (usa contexto bajo el capó), lo que proporciona aislamiento entre los usuarios.
Puede importar getSession desde src/hooks.js y pasar el evento para reutilizar la lógica que extrae los datos de sesión de la solicitud.
El almacén de sesiones se está completando en src/hooks.js , el flujo normal para hacerlo es
handle , agregue algunos datos a event.locals .getSession , use event.locals para crear un objeto de sesión. Este objeto de sesión está disponible en el cliente como almacén de sesión y durante ssr si usa las funciones de load , pero no está disponible en los puntos finales.
Sin embargo, lo que está disponible en el punto final es la variable locals , que originalmente se pasa a la función getSession , para que pueda leerla.
export async function get({ locals }) { // code goes here } Solo tenga en cuenta que esto significa que no hay sincronización entre los locales y la sesión del lado del cliente, si agrega algo a la sesión, no estará disponible para el punto final. Para manejar esto, tendría que, por ejemplo, agregar nuevos datos a la cookie y analizarlos en la función de handle .