"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como definir cookies ou cabeçalhos para um domínio diferente durante um redirecionamento?

Como definir cookies ou cabeçalhos para um domínio diferente durante um redirecionamento?

Publicado em 01/11/2024
Navegar:533

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

Como redirecionar de um domínio para outro e definir cookies ou cabeçalhos para o outro domínio?

Os redirecionamentos HTTP não permitem a configuração de cabeçalhos ou cookies personalizados para o destino domínio. Além disso, os navegadores evitam definir cookies para um domínio diferente daquele que responde com o cabeçalho Set-Cookie.

Solução 1: redirecionar com parâmetro de consulta e depois definir cookie

  1. Redirecionar de domínio A para domínio B com um token de acesso passado como parâmetro de consulta.
  2. O domínio B recebe a solicitação e define seu próprio cookie usando o token.

Solução 2: origem cruzada Comunicação com Window.postMessage()

  1. Adicione um iframe oculto ao domínio A apontando para o domínio B.
  2. Envie o token de acesso ao domínio B usando Window.postMessage().
  3. O domínio B armazena o token em localStorage ou define um cookie usando JS.
  4. Envie uma mensagem ao domínio A informando que o token foi armazenado e redirecione o usuário para o domínio B.

Solução 3: troca de token do lado do servidor

  1. Use uma tag Como definir cookies ou cabeçalhos para um domínio diferente durante um redirecionamento? no domínio A para apontar para o domínio B com um token de acesso como parâmetro de consulta.
  2. O domínio B responde com Cabeçalhos Set-Cookie ao receber a solicitação.
  3. Use fetch ou XMLHttpRequest (com credenciais e CORS habilitados) para enviar o token diretamente para o domínio B.
  4. O domínio B define o cookie ao receber o acesso token.

Notas importantes:

  • Permitir que todos os cookies devem estar habilitados nas configurações do navegador para que as soluções 2 e 3 funcionem.
  • Usar SameSite=Nenhum; Sinalizadores seguros em cookies para a Solução 3.
  • A string de consulta na Solução 1 expõe o token de acesso e apresenta riscos de segurança.
  • A Solução 3 requer CORS habilitado no domínio de destino e especificação de origem explícita no lado do servidor.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3