Skip to content

Commit b078415

Browse files
committed
Fix authentication token type in AuthToken model
and handle session token in MSALScheme
1 parent 599a02c commit b078415

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

fastapi_msal/models/auth_token.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99

1010
class AuthToken(BaseAuthModel):
11-
id_token: OptStr = None
11+
id_token: str
1212
"""
1313
A JSON Web Token (JWT).
1414
The app can decode the segments of this token to request information about the user who signed in.

fastapi_msal/security/msal_scheme.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from fastapi.security.base import SecurityBase
88
from fastapi.security.utils import get_authorization_scheme_param
99

10-
from fastapi_msal.models import IDTokenClaims
10+
from fastapi_msal.models import AuthToken, IDTokenClaims
1111

1212
from .msal_auth_code_handler import MSALAuthCodeHandler
1313

@@ -45,11 +45,14 @@ async def __call__(self, request: Request) -> IDTokenClaims:
4545
)
4646
authorization: Optional[str] = request.headers.get("Authorization")
4747
scheme, token = get_authorization_scheme_param(authorization)
48-
if not authorization or scheme.lower() != "bearer":
49-
raise http_exception
50-
token_claims: Optional[IDTokenClaims] = await self.handler.parse_id_token(
51-
request=request, token=token, validate=True
52-
)
48+
token_claims: Optional[IDTokenClaims] = None
49+
if authorization and scheme.lower() != "bearer":
50+
token_claims = await self.handler.parse_id_token(request=request, token=token, validate=True)
51+
else:
52+
session_token: Optional[AuthToken] = await self.handler.get_token_from_session(request=request)
53+
if session_token:
54+
token_claims = session_token.id_token_claims
55+
5356
if not token_claims:
5457
raise http_exception
5558
return token_claims

0 commit comments

Comments
 (0)