Fix flow where oidc_expiry is different from token expiry (#1974)

This commit is contained in:
Chris Weaver
2024-07-29 20:17:08 -07:00
committed by GitHub
parent 015f415b71
commit fb6695a983
3 changed files with 14 additions and 1 deletions

View File

@@ -347,6 +347,12 @@ async def double_check_user(
detail="Access denied. User is not verified.", detail="Access denied. User is not verified.",
) )
if user.oidc_expiry and user.oidc_expiry < datetime.now(timezone.utc):
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail="Access denied. User's OIDC token has expired.",
)
return user return user

View File

@@ -1,5 +1,6 @@
import re import re
from datetime import datetime from datetime import datetime
from datetime import timezone
from fastapi import APIRouter from fastapi import APIRouter
from fastapi import Body from fastapi import Body
@@ -296,6 +297,12 @@ def verify_user_logged_in(
status_code=status.HTTP_403_FORBIDDEN, detail="User Not Authenticated" status_code=status.HTTP_403_FORBIDDEN, detail="User Not Authenticated"
) )
if user.oidc_expiry and user.oidc_expiry < datetime.now(timezone.utc):
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail="Access denied. User's OIDC token has expired.",
)
token_created_at = get_current_token_creation(user, db_session) token_created_at = get_current_token_creation(user, db_session)
user_info = UserInfo.from_model( user_info = UserInfo.from_model(
user, user,

View File

@@ -1,7 +1,7 @@
from typing import Any from typing import Any
from typing import cast from typing import cast
from openai import BaseModel from pydantic import BaseModel
REQUEST_BODY = "requestBody" REQUEST_BODY = "requestBody"