Saltar a contenido

auth

app.common.middlewares.auth

Middleware (función) de fastapi para validar las cabeceras Content-Type y Authorization.

Adicionalmente valida la estructura del BEARER_TOKEN y obtiene de la Base de Datos (middleware de sesión), la información de la sesión, el rol y la lista de permisos, para pasarlos mediante DI a request.state.

Para más información, te recomendamos leer la documentación del Proyecto.

validate_bearer_token(apikey)

Valida la estructura del BEARER_TOKEN.

Parameters:

Name Type Description Default
apikey str

el Token enviado por las cabeceras

required

Returns:

Type Description
tuple[int, str]

una tupla con el codigo de respuesta y el token ó un mensaje de error

Examples:

...
validate_bearer_token(awesome_auth_header)

validate_auth_session(request) async

Un middleware de fastapi para validar las cabeceras Content-Type, Authorization y Accept-Encoding.

Parameters:

Name Type Description Default
request Request

una instancia de Request para las conexiones HTTP entrantes.

required
Notes

este middleware utiliza internamente a:

  • la función validate_bearer_token.
  • a la función asíncrona default_validate_session, para más información revisa el módulo app.common.middlewares.sessions.

Raises:

Type Description
HTTPException

una excepción HTTP con un codigo de estado 401 en caso de que se origine un error al realizar alguna validación

Examples:

from fastapi import Depends
from app.common.middlewares.auth import validate_auth_session
from app.core.register import add_router
from my.awesome.module.views.my_view import my_custom_router

...

add_router(
    my_custom_router,
    "/me",
    "/me/{id}",
    tags=["me"],
    dependencies=[Depends(validate_auth_session)]
)

validate_auth_bearer_token(request) async

Valida la cabecera Authorization y su estructura.

Parameters:

Name Type Description Default
request Request

una instancia de Request para las conexiones HTTP entrantes.

required
Notes

este middleware utiliza internamente a:

  • la función validate_bearer_token.

Raises:

Type Description
HTTPException

una excepción HTTP con un codigo de estado 401 en caso de que se origine un error al realizar alguna validación

Returns:

Type Description
str

El Bearer Token

Examples:

from fastapi import Depends
from app.common.middlewares.auth import validate_auth_bearer_token
from app.core.register import add_router
from my.awesome.module.views.my_view import my_custom_router

...
add_router(
    my_custom_router,
    "/me",
    "/me/{id}",
    tags=["me"],
    dependencies=[Depends(validate_auth_bearer_token)]
)

validate_default_headers(request) async

Valida las cabeceras content-type y accept-encoding.

Parameters:

Name Type Description Default
request Request

una instancia de Request para las conexiones HTTP entrantes.

required
Notes

este middleware solo valida la estructura.

Raises:

Type Description
HTTPException

una excepción HTTP con un codigo de estado 401 en caso de que se origine un error al realizar alguna validación

Examples:

from fastapi import Depends
from app.common.middlewares.auth import validate_default_headers
from app.core.register import add_router
from my.awesome.module.views.my_view import my_custom_router

...
add_router(
    my_custom_router,
    "/me",
    "/me/{id}",
    tags=["me"],
    dependencies=[Depends(validate_default_headers)]
)