Description
The OAuth2PasswordBearerWithCookies class in chainlit/auth/cookie.py subclasses OAuth2PasswordBearer but fails to expose the model attribute, which is required by FastAPI >= 0.137.0 for generating OpenAPI security schemes. Consequently, applications using @cl.password_auth_callback crash when the OpenAPI schema is generated.
Steps to Reproduce
- Install Chainlit 2.11.1 in a clean environment (which pulls in FastAPI 0.137.1).
- Create a minimal app using
@cl.password_auth_callback:
import chainlit as cl
@cl.password_auth_callback
def auth_callback(username: str, password: str):
if (username, password) == ("admin", "admin"):
return cl.User(identifier="admin")
return None
- Run
chainlit run app.py.
- Open
/docs or trigger schema generation.
Expected Behavior
Password authentication should function correctly with current FastAPI releases without requiring local monkey-patching.
Actual Behavior
The application raises an AttributeError during startup or schema generation:
AttributeError: 'OAuth2PasswordBearerWithCookies' object has no attribute 'model'
Environment
- Chainlit version: 2.11.1
- FastAPI version: 0.137.1
- Python version: 3.12.13
Possible Fix
Assign self.model within OAuth2PasswordBearerWithCookies.__init__:
from fastapi.security.oauth2 import OAuthFlowsModel
class OAuth2PasswordBearerWithCookies(OAuth2PasswordBearer):
def __init__(self, tokenUrl: str, auto_error: bool = True):
super().__init__(tokenUrl=tokenUrl, auto_error=auto_error)
self.model = OAuthFlowsModel(
password={"tokenUrl": tokenUrl, "scopes": {}}
)
Description
The
OAuth2PasswordBearerWithCookiesclass inchainlit/auth/cookie.pysubclassesOAuth2PasswordBearerbut fails to expose themodelattribute, which is required by FastAPI >= 0.137.0 for generating OpenAPI security schemes. Consequently, applications using@cl.password_auth_callbackcrash when the OpenAPI schema is generated.Steps to Reproduce
@cl.password_auth_callback:chainlit run app.py./docsor trigger schema generation.Expected Behavior
Password authentication should function correctly with current FastAPI releases without requiring local monkey-patching.
Actual Behavior
The application raises an
AttributeErrorduring startup or schema generation:Environment
Possible Fix
Assign
self.modelwithinOAuth2PasswordBearerWithCookies.__init__: