Compare commits

...

2 commits

Author SHA1 Message Date
850db9f590 Fix scope cannot be determined when the access token cannot be decoded
All checks were successful
/ build (push) Successful in 5s
/ test (push) Successful in 6s
2025-02-23 16:37:47 +01:00
f6a84fd3aa Cosmetic 2025-02-22 18:57:25 +01:00
2 changed files with 10 additions and 6 deletions

View file

@ -20,7 +20,7 @@ logger = logging.getLogger("oidc-test")
async def fetch_token(name, request):
assert name is not None
assert request is not None
logger.warn("TODO: fetch_token")
logger.warning("TODO: fetch_token")
...
# if name in oidc_providers:
# model = OAuth2Token
@ -32,7 +32,10 @@ async def fetch_token(name, request):
async def update_token(
provider_id, token, refresh_token: str | None = None, access_token: str | None = None
provider_id,
token,
refresh_token: str | None = None,
access_token: str | None = None,
):
"""Update the token in the database"""
provider = providers[provider_id]

View file

@ -123,19 +123,20 @@ async def home(
try:
access_token_parsed = provider.decode(token["access_token"], verify_signature=False)
context["access_token_parsed"] = access_token_parsed
context["access_token_scope"] = access_token_parsed.get("scope")
except PyJWTError as err:
access_token_parsed = {"Cannot parse": err.__class__.__name__}
context["access_token_parsed"] = {"Cannot parse": err.__class__.__name__}
context["access_token_scope"] = None
try:
id_token_parsed = provider.decode(token["id_token"], verify_signature=False)
context["id_token_parsed"] = id_token_parsed
except PyJWTError as err:
id_token_parsed = {"Cannot parse": err.__class__.__name__}
context["id_token_parsed"] = {"Cannot parse": err.__class__.__name__}
try:
refresh_token_parsed = provider.decode(token["refresh_token"], verify_signature=False)
context["refresh_token_parsed"] = refresh_token_parsed
except PyJWTError as err:
refresh_token_parsed = {"Cannot parse": err.__class__.__name__}
context["access_token_scope"] = access_token_parsed.get("scope")
context["refresh_token_parsed"] = {"Cannot parse": err.__class__.__name__}
context["resources"] = registry.resources
context["resource_providers"] = provider.resource_providers
return templates.TemplateResponse(name="home.html", request=request, context=context)