Bases de Svelte
Introduction
Liaisons
Classes et styles
Svelte avancé
Réutiliser du contenu
Mouvements
Liaisons avancées
Transitions avancées
API de contexte
Éléments spéciaux
<script module>
Next steps
Bases de SvelteKit
Introduction
Routing
Chargement de données
En-têtes et cookies
Modules partagés
Formulaires
$app/state
Erreurs et redirections
SvelteKit avancé
Options de page
Options de lien
Routing avancé
Chargement avancé
Variables d’environnement
Conclusion
La fonction setHeaders
ne peut pas être utilisée pour définir l’en-tête Set-Cookie
. À
la place, vous devez utiliser l’API cookies
.
Dans vos fonctions load
, vous pouvez lire un cookie avec cookies.get(name, options)
:
export function load({ cookies }) {
const visited = cookies.get('visited');
return {
visited: visited === 'true'
};
}
Pour définir un cookie, utilisez cookies.set(name, value, options)
. Il est fortement recommandé de
définir explicitement le path
lorsque vous définissez un cookie, puisque le comportement par
défaut des navigateurs est de définir le cookie sur le chemin parent du chemin courant — ce qui est
plutôt inutile.
export function load({ cookies }) {
const visited = cookies.get('visited');
cookies.set('visited', 'true', { path: '/' });
return {
visited: visited === 'true'
};
}
Désormais, si vous rechargez l’iframe, Bonjour étranger !
devient Bonjour cher ami !
.
Appeler cookies.set(name, ...)
déclenche l’écriture de l’en-tête Set-Cookie
, mais va aussi
mettre à jour la map de cookies interne, impliquant que les appels suivants à cookies.get(name)
pendant la même requête renverrons la valeur à jour. Sous le capot, l’API cookies
utilise le
paquet populaire cookie
— les options passées à cookies.get
et cookies.set
correspondent aux
options de parse
et serialize
dans la documentation de
cookie
. SvelteKit définit les options suivantes par défaut pour sécuriser un peu plus vos cookies
:
{
httpOnly: true,
secure: true,
sameSite: 'lax'
}
Modifier cette page sur Github
<script>
let { data } = $props();
</script>
<h1>Bonjour {data.visited ? 'cher ami' : 'étranger'} !</h1>