Skip to main content
Bases de Svelte
Introduction
Réactivité
Props
Logique
Évènements
Liaisons
Classes et styles
Actions
Transitions
Svelte avancé
Réactivité avancée
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
Routes d’API
$app/state
Erreurs et redirections
SvelteKit avancé
Hooks
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) :

src/routes/+page.server
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.

src/routes/+page.server
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

1
2
3
4
5
6
<script>
	let { data } = $props();
</script>
 
<h1>Bonjour {data.visited ? 'cher ami' : 'étranger'} !</h1>