Sesiones
En el apartado de middlewares se explicaba que estos intervienen en acciones que permiten interceptar y/o modificar el flujo de datos.
En esta entrada, nos enfocaremos en obtener toda la información de la sesión, utilizando la función session_info
.
Disponible en el módulo app.common.middlewares.sessions
Nota
- Te recomendamos leer, el apartado de Inyección de Dependencias.
- Es necesario utilizar la dependencia (Depend) validate_auth_session, para que esta función funcione en un route.
session_info
es una función utilizada como Inyección de Dependencias, para realizar las siguientes operaciones:
Definición
-
esta función valida que existan algunos campos comunes, en el objeto de la sesión(
request.state
). -
obtiene los datos a validar, del objeto
request.state
para más información, consulta la funciónvalidate_auth_session
enapp.common.middlewares.auth
. - inyecta en el route, un objeto con la información obtenida de la
sesión
óNone
en caso de no estar presente el objeto de sesión.
la función session_info buscará en el objeto request.state
si existe una llave llamada session
y verifica, si dentro de ella, existen las siguientes llaves:
Nota
- Te recomendamos leer, el módulo app.common.middlewares.auth
veamos un ejemplo:
agregamos la dependencia validate_auth_session:
utilizamos session_info en un route:
Recuerda
Recuerda utilizar la dependencia (Depend) validate_auth_session, para que funcione correctamente en un route, de lo contrario devolverá None
.
Para tener en cuenta
Es posible que toque modificar esta función, cuando se utilice PostgreSQL y/o MySQL por la validación del campo _id
.