From 777bd824a54a4969f9a8c58ec41451e47857afe8 Mon Sep 17 00:00:00 2001 From: decentral1se Date: Sun, 13 Jun 2021 17:43:26 +0200 Subject: [PATCH] Try to ensure a fresh token on request --- keycloak_collective_portal/dependencies.py | 7 +++++++ keycloak_collective_portal/routes/register.py | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/keycloak_collective_portal/dependencies.py b/keycloak_collective_portal/dependencies.py index d0110e0..e4f4e6c 100644 --- a/keycloak_collective_portal/dependencies.py +++ b/keycloak_collective_portal/dependencies.py @@ -7,6 +7,13 @@ from fastapi import Depends, Request from humanize import naturaldelta +async def fresh_token(request: Request): + """Ensure fresh credentials for speaking to Keycloak.""" + from keycloak_collective_portal.keycloak import init_keycloak + + request.app.state.keycloak = init_keycloak() + + async def logged_in(request: Request): """Ensure the user is logged in.""" from keycloak_collective_portal.exceptions import RequiresLoginException diff --git a/keycloak_collective_portal/routes/register.py b/keycloak_collective_portal/routes/register.py index e604fbe..4f98323 100644 --- a/keycloak_collective_portal/routes/register.py +++ b/keycloak_collective_portal/routes/register.py @@ -6,7 +6,7 @@ from datetime import timedelta from fastapi import APIRouter, Depends, Form, Request -from keycloak_collective_portal.dependencies import get_invites +from keycloak_collective_portal.dependencies import fresh_token, get_invites router = APIRouter() @@ -50,7 +50,7 @@ async def register_invite( ) -@router.post("/form/keycloak/register") +@router.post("/form/keycloak/register", dependencies=[Depends(fresh_token)]) def form_keycloak_register( request: Request, first_name: str = Form(...),