check litellm header in login on ui

This commit is contained in:
Ishaan Jaff 2024-07-29 17:03:04 -07:00
parent f25ed92ee2
commit 0c25aaf9df
2 changed files with 14 additions and 21 deletions

View file

@ -914,22 +914,3 @@ async def delete_verification_token(tokens: List, user_id: Optional[str] = None)
verbose_proxy_logger.debug(traceback.format_exc()) verbose_proxy_logger.debug(traceback.format_exc())
raise e raise e
return deleted_tokens return deleted_tokens
@router.get(
"/litellm_header_name",
include_in_schema=False,
)
async def get_litellm_header_name():
"""
Used by LiteLLM Admin UI
returns the header name that should be used for the Authorization header on requests to litellm
"""
from litellm.proxy.proxy_server import general_settings
if "litellm_key_header_name" in general_settings:
return {"litellm_key_header_name": general_settings["litellm_key_header_name"]}
else:
# default value
return {"litellm_key_header_name": "Authorization"}

View file

@ -7773,7 +7773,7 @@ async def fallback_login(request: Request):
"/login", include_in_schema=False "/login", include_in_schema=False
) # hidden since this is a helper for UI sso login ) # hidden since this is a helper for UI sso login
async def login(request: Request): async def login(request: Request):
global premium_user global premium_user, general_settings
try: try:
import multipart import multipart
except ImportError: except ImportError:
@ -7875,6 +7875,9 @@ async def login(request: Request):
"user_role": user_role, # this is the path without sso - we can assume only admins will use this "user_role": user_role, # this is the path without sso - we can assume only admins will use this
"login_method": "username_password", "login_method": "username_password",
"premium_user": premium_user, "premium_user": premium_user,
"auth_header_name": general_settings.get(
"litellm_key_header_name", "Authorization"
),
}, },
master_key, master_key,
algorithm="HS256", algorithm="HS256",
@ -7939,6 +7942,9 @@ async def login(request: Request):
"user_role": user_role, "user_role": user_role,
"login_method": "username_password", "login_method": "username_password",
"premium_user": premium_user, "premium_user": premium_user,
"auth_header_name": general_settings.get(
"litellm_key_header_name", "Authorization"
),
}, },
master_key, master_key,
algorithm="HS256", algorithm="HS256",
@ -7987,7 +7993,7 @@ async def onboarding(invite_link: str):
- Get user from db - Get user from db
- Pass in user_email if set - Pass in user_email if set
""" """
global prisma_client, master_key global prisma_client, master_key, general_settings
if master_key is None: if master_key is None:
raise ProxyException( raise ProxyException(
message="Master Key not set for Proxy. Please set Master Key to use Admin UI. Set `LITELLM_MASTER_KEY` in .env or set general_settings:master_key in config.yaml. https://docs.litellm.ai/docs/proxy/virtual_keys. If set, use `--detailed_debug` to debug issue.", message="Master Key not set for Proxy. Please set Master Key to use Admin UI. Set `LITELLM_MASTER_KEY` in .env or set general_settings:master_key in config.yaml. https://docs.litellm.ai/docs/proxy/virtual_keys. If set, use `--detailed_debug` to debug issue.",
@ -8074,6 +8080,9 @@ async def onboarding(invite_link: str):
"user_role": user_obj.user_role, "user_role": user_obj.user_role,
"login_method": "username_password", "login_method": "username_password",
"premium_user": premium_user, "premium_user": premium_user,
"auth_header_name": general_settings.get(
"litellm_key_header_name", "Authorization"
),
}, },
master_key, master_key,
algorithm="HS256", algorithm="HS256",
@ -8491,6 +8500,9 @@ async def auth_callback(request: Request):
"user_role": user_role, "user_role": user_role,
"login_method": "sso", "login_method": "sso",
"premium_user": premium_user, "premium_user": premium_user,
"auth_header_name": general_settings.get(
"litellm_key_header_name", "Authorization"
),
}, },
master_key, master_key,
algorithm="HS256", algorithm="HS256",