Authentication
Header
This authentication allows you to plug your existing user database to the Chainlit app. You receive the headers from the first request, and you need to return an AppUser
object if the authentication is successful.
You can use the callback to make sure the header contains the right token. Either by verifying the signature, or by checking in your database.
Example
from typing import Optional
import chainlit as cl
@cl.header_auth_callback
def header_auth_callback(headers) -> Optional[cl.AppUser]:
# Verify the signature of a token in the header (ex: jwt token)
# or check that the value is matching a row from your database
if headers.get("test-header") == "test-value":
return cl.AppUser(username="admin", role="ADMIN", provider="header")
else:
return None