"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment définir des cookies ou des en-têtes pour un domaine différent lors d'une redirection ?

Comment définir des cookies ou des en-têtes pour un domaine différent lors d'une redirection ?

Publié le 2024-11-01
Parcourir:131

How to Set Cookies or Headers for a Different Domain During a Redirect?

Comment rediriger d'un domaine vers un autre et définir des cookies ou des en-têtes pour l'autre domaine ?

Les redirections HTTP ne permettent pas de définir des en-têtes ou des cookies personnalisés pour la cible domaine. De plus, les navigateurs empêchent de définir des cookies pour un domaine différent de celui qui répond avec l'en-tête Set-Cookie.

Solution 1 : Rediriger avec le paramètre de requête, puis définir le cookie

  1. Redirection depuis domaine A vers le domaine B avec un jeton d'accès transmis comme paramètre de requête.
  2. Le domaine B reçoit la demande et définit son propre cookie à l'aide du jeton.

Solution 2 : Cross-Origin Communication avec Window.postMessage()

  1. Ajouter une iframe masquée au domaine A pointant vers le domaine B.
  2. Envoyer le jeton d'accès au domaine B à l'aide de Window.postMessage().
  3. Le domaine B stocke le jeton dans localStorage ou définit un cookie à l'aide de JS.
  4. Message au domaine A indiquant que le jeton a été stocké et redirige l'utilisateur vers le domaine B.

Solution 3 : échange de jetons côté serveur

  1. Utilisez une balise Comment définir des cookies ou des en-têtes pour un domaine différent lors d'une redirection ? dans le domaine A pour pointer vers le domaine B avec un jeton d'accès comme paramètre de requête.
  2. Le domaine B répond avec Définir les en-têtes Cookie lors de la réception de la demande.
  3. Utilisez fetch ou XMLHttpRequest (avec les informations d'identification et CORS activés) pour envoyer le jeton directement au domaine B.
  4. Le domaine B définit le cookie lors de la réception de l'accès. token.

Remarques importantes :

  • Autoriser tous les cookies doit être activé dans les paramètres du navigateur pour que les solutions 2 et 3 fonctionnent.
  • Utilisez SameSite=Aucun ; Indicateurs sécurisés dans les cookies pour la solution 3.
  • La chaîne de requête dans la solution 1 expose le jeton d'accès et présente des risques de sécurité.
  • La solution 3 nécessite l'activation de CORS sur le domaine cible et une spécification d'origine explicite sur le domaine cible. côté serveur.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3