diff --git a/src/content/docs/fr/guides/sessions.mdx b/src/content/docs/fr/guides/sessions.mdx index f56942d49fff8..35a6bb983783d 100644 --- a/src/content/docs/fr/guides/sessions.mdx +++ b/src/content/docs/fr/guides/sessions.mdx @@ -4,6 +4,8 @@ description: Partagez des données entre les requêtes de pages rendues à la de i18nReady: true --- +import { Steps } from '@astrojs/starlight/components'; +import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro'; import Since from '~/components/Since.astro'; import ReadMore from '~/components/ReadMore.astro'; @@ -35,17 +37,78 @@ import vercel from '@astrojs/vercel' export default defineConfig({ adapter: vercel() session: { - driver: sessionDrivers.redis({ - url: process.env.REDIS_URL + driver: sessionDrivers.lruCache({ + max: 800, }), } }) ``` - Consultez [l'option de configuration `session`](/fr/reference/configuration-reference/#options-des-sessions) pour plus de détails sur la configuration d'un pilote de stockage et d'autres options configurables. +Consultez [l'option de configuration `session`](/fr/reference/configuration-reference/#options-des-sessions) pour plus de détails sur la configuration d'un pilote de stockage et d'autres options configurables. +### Remplacement de la configuration lors de l'exécution + +Par défaut, les pilotes de session sont configurés au moment de la compilation, et toute [variable d'environnement](/fr/guides/environment-variables/) utilisée sera incorporée au code compilé. Cela signifie que vous ne pouvez pas remplacer la configuration lors de l'exécution. + +Lorsque vous avez besoin d'une configuration différente (p. ex. pour vous connecter à un service externe), définissez-la dans un fichier séparé. Utilisez ensuite ce fichier comme [point d'entrée du pilote](/fr/reference/session-driver-reference/#entrypoint). + +L'exemple suivant tire parti de la [compatibilité avec Unstorage](/fr/reference/session-driver-reference/#compatibilité-avec-unstorage) pour configurer le pilote Redis dans son propre point d'entrée : + + +1. Installez le [paquet `unstorage`](https://unstorage.unjs.io/guide) : + + + ```sh + npm install unstorage + ``` + + + ```sh + pnpm add unstorage + ``` + + + ```sh + yarn add unstorage + ``` + + + +2. Créez un fichier pour la configuration du pilote (par exemple `src/pilote-session.ts`) et exportez une fonction par défaut qui renvoie l'instance du pilote : + ```ts title="src/pilote-session.ts" + import type { SessionDriver } from "astro"; + import redisDriver from "unstorage/drivers/redis"; + import { REDIS_HOST, REDIS_PORT } from "astro:env"; + + export default function (): SessionDriver { + return redisDriver({ + host: REDIS_HOST, + port: REDIS_PORT, + }); + } + ``` + +3. Utilisez ce fichier comme point d'entrée du pilote dans votre configuration d'Astro : + ```js title="astro.config.mjs" {11-13} + import { defineConfig, envField, sessionDrivers } from "astro/config"; + import vercel from "@astrojs/vercel"; + + export default defineConfig({ + adapter: vercel(), + env: { + REDIS_HOST: envField.string({ context: "server", access: "public", default: "localhost" }), + REDIS_PORT: envField.number({ context: "server", access: "public", default: 6379 }), + }, + session: { + driver: { + entrypoint: new URL('./src/pilote-session.ts', import.meta.url), + } + } + }); + ``` + ## Interaction avec les données de session