Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

407
Vistas
Los valores de sesión de Flask no se guardan en diferentes solicitudes

He buscado soluciones en todas partes pero no pude resolver mi problema. Actualmente estoy ejecutando una aplicación Flask con uWSGI y NGINX en AWS.

La aplicación de mi matraz se ejecuta localmente 127.0.0.1:5000 . Intenté agregar secret_key como se menciona en diferentes preguntas, pero no funcionó.

Aquí hay algo de mi código:

app.py

 from flask import Flask, request, redirect, url_for, session, abort from flask_session import Session app = Flask(__name__) app.config["SESSION_TYPE"] = 'filesystem' app.config["SESSION_FILE_DIR"] = '/var/www/test/session' Session(app) @app.route('/auth/login', methods=['POST'], strict_slashes=False) def login(): # did some validations here session.permanent = True session['is_logged_in'] = True return redirect(url_for('home')) @app.route('/auth/home', methods=['GET'], strict_slashes=False) def home(): if session.get('is_logged_in') == None: return redirect('/') # will return to default page return render_template('home.html') if __name__ == '__main__': app.run(host='0.0.0.0')

Siempre me redirigen a la página predeterminada ya que la session no almacenó el valor 'is_logged_in'. Pero almacenó { permanent: True } que creo que es de la línea session.permanent = True .

Configuración en nginx.conf :

 location /auth { rewrite ^/(.+) $1 break; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off: proxy_pass http://127.0.0.1:5000/$1$is_args$args; }

Si ayuda, mi uWSGI se ejecuta en socket = 120.0.0.1:5000 y estoy usando protocol = http .

Y cuando revisé las cookies de la aplicación en el navegador, tiene registrada una cookie de session .

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Intente usar if session['is_logged_in'] == False

Y establezca que la sesión se registra como falsa al principio. En la parte superior después de la Session(app) agregue esta session['is_logged_in'] = False

Editar:

Verifica si 'logged_in' está presente en la sesión. Al iniciar sesión haz esto:

 if 'logged_in' in session: #User logged in

Al cerrar la sesión haz esto

 session.pop('logged_in')
over 4 years ago · Santiago Trujillo Denunciar

0

Después de una tediosa investigación, resultó que solo necesitaba incluir plugin = python36 en mi uwsgi.ini, que es de uwsgi-plugin-python36 (rpm).

over 4 years ago · Santiago Trujillo Denunciar

0

Noté una falta de persistencia de sesión en mi flujo de OAuth 2.0. La configuración SAMESITE ="Strict" era lo que lo estaba causando. En uno de los pasos, el proveedor de identidad no pudo configurar la cookie y responder con la misma identificación de sesión. Esto condujo a la creación de una nueva sesión al final del flujo de autenticación; por lo tanto, no se estaba realizando ninguna autenticación.

Establecer SAMESITE en "Lax" resolvió mi problema.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda