python - Flask User Management: ¿Cómo hacer que Stateless Server use mejores formas de autenticación?
django rest (2)
Flask-Login utiliza la administración de sesión integrada de matraz, que de forma predeterminada usa cookies seguras / firmadas, y por lo tanto es puramente del lado del cliente.
Puede admitir sesiones del servidor si es necesario, aunque, por supuesto, aquí hay un ejemplo de tienda de sesión con respaldo redis.
He estado leyendo en varios lugares y se sugiere que los Servidores web sean Stateles sin compartir arquitectura . Esto les ayuda a escalar mejor.
Eso significa que cada solicitud tiene toda la información necesaria para procesar la solicitud.
Esto se vuelve complicado cuando tiene puntos finales REST que necesitan autenticación.
He estado buscando maneras en que las extensiones de Flask hacen esto y la extensión de inicio de sesión de Flask se define como
Flask-Login proporciona administración de sesión de usuario para Flask. Maneja las tareas comunes de iniciar sesión, cerrar sesión y recordar las sesiones de los usuarios durante largos períodos de tiempo.
- Esto parece contra la filosofía de construir un servidor sin estado , ¿no es así?
- ¿Cuáles son las mejores formas de crear un servidor sin estado con autenticación proporcionada a través de encabezados HTTP con Python o bibliotecas relacionadas de Python?
PD: Disculpas por no publicar una pregunta de programación aquí, este es un problema de diseño y no sé cómo resolverlo, y SO parece tener las personas adecuadas para responder esas preguntas. Gracias.
Tengo el mismo problema que dijiste. Mientras que he construido una solución simple para esto, pero buscando una mejor. Lo que hago actualmente es preguntarle a la persona que llama (quién envía la solicitud http) que proporcione una ''X-User-Info'' en el encabezado http, el valor es un token. Cuando recibí la solicitud, uso este token para obtener la identidad del usuario (De redis por ejemplo) y todos los siguientes controles de autorización y permiso se basan en esta identidad. La autenticación no hace más que generar un token aleatorio, guardarlo con la información del usuario para redistribuir y devolver el token a la persona que llama.