Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

423
Visualizações
No se puede configurar la cookie httpOnly entre Heroku y Netlify + cloudflare

Tengo el siguiente problema. Estoy tratando de configurar la cookie httpOnly y no pasa nada. Pasé algunas horas tratando de resolver este problema y no tengo idea de lo que está pasando... Mi arquitectura es la siguiente:

Backend : Python fast-api alojado en Heroku, disponible en https://api.mysuperdomain.com .

Interfaz: GatsbyJs alojado en Netlify, disponible en https://mysuperdomain.com

Cuando llamo a la solicitud de inicio de sesión del componente React:

 const handleSubmit = async (e) => { e.preventDefault() const config = { headers: { crossDomain: true, withCredentials: true, 'Content-Type': 'application/x-www-form-urlencoded' } } const requestBody = { username: emailRef.current.value, password: passwordRef.current.value } try { const data = await axios.post('https://api.mysuperdomain.com/login', qs.stringify(requestBody), config)

Obtengo una respuesta de mi backend con encabezados, set-cookie:

 set-cookie: Authorization="Bearer somethinghere"; Domain=.mysuperdomain.com; expires=Tue, 28 Jul 2020 20:40:32 GMT; Max-Age=1800; Path=/; SameSite=lax

lamentablemente en el almacenamiento del navegador no puedo ver esta cookie.

Mi backend (API) configura la cookie de la siguiente manera:

 @app.post("/login") async def login(form_data: OAuth2PasswordRequestForm = Depends()): user = authenticate_user(fake_users_db, form_data.username, form_data.password) if not user: raise HTTPException(status_code=400, detail="Incorrect username or password") access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES) access_token = create_access_token( data={"sub": form_data.username}, expires_delta=access_token_expires ) token = jsonable_encoder(access_token) response = JSONResponse({'status': 'authenticated'}) response.set_cookie( key="Authorization", value=f"Bearer {token}", domain=".mysuperdomain.com", httponly=True, max_age=1800, expires=1800, ) return response

Mis registros DNS están dentro de Cloudflare, y el registro CNAME para el backend es proxy:

 Typ Name Content TTL Proxy status CNAME api limitless-starfish-something.herokudns.com Auto Proxied

El modo de cifrado SSL/TLS es flexible (cifra el tráfico entre el navegador y Cloudflare). Backend en Heroku no tiene certificado SSL, por lo tanto, configuré el modo de cifrado SSL/TLS flexible.

¿Tal vez esté relacionado de alguna manera con la configuración anterior?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Creo que esto sucede porque no agregó un middleware CORS a su aplicación, en FastAPI, allow_credentials está configurado en bool = False de manera predeterminada. Pero puedes cambiar eso fácilmente.

Primero necesita importar CORSMiddleware desde fastapi.middlewares

 from fastapi.middleware.cors import CORSMiddleware

Entonces podemos agregar un middleware a nuestra aplicación

 app.add_middleware( CORSMiddleware, allow_credentials=True, )

También puede agregar orígenes y todo lo demás con CORSMiddleware , para obtener más información relacionada, consulte FastAPI-CORS .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda