Update token expiration settings
This commit is contained in:
parent
618c4234d6
commit
66b85a81ed
3 changed files with 14 additions and 14 deletions
|
|
@ -10,6 +10,7 @@ from langflow.services.auth.utils import (
|
||||||
create_user_tokens,
|
create_user_tokens,
|
||||||
)
|
)
|
||||||
from langflow.services.deps import get_session, get_settings_service
|
from langflow.services.deps import get_session, get_settings_service
|
||||||
|
from langflow.services.settings.manager import SettingsService
|
||||||
|
|
||||||
router = APIRouter(tags=["Login"])
|
router = APIRouter(tags=["Login"])
|
||||||
|
|
||||||
|
|
@ -41,7 +42,7 @@ async def login_to_get_access_token(
|
||||||
httponly=auth_settings.REFRESH_HTTPONLY,
|
httponly=auth_settings.REFRESH_HTTPONLY,
|
||||||
samesite=auth_settings.REFRESH_SAME_SITE,
|
samesite=auth_settings.REFRESH_SAME_SITE,
|
||||||
secure=auth_settings.REFRESH_SECURE,
|
secure=auth_settings.REFRESH_SECURE,
|
||||||
expires=auth_settings.REFRESH_TOKEN_EXPIRE_MINUTES * 60,
|
expires=auth_settings.REFRESH_TOKEN_EXPIRE_SECONDS,
|
||||||
)
|
)
|
||||||
response.set_cookie(
|
response.set_cookie(
|
||||||
"access_token_lf",
|
"access_token_lf",
|
||||||
|
|
@ -49,7 +50,7 @@ async def login_to_get_access_token(
|
||||||
httponly=auth_settings.ACCESS_HTTPONLY,
|
httponly=auth_settings.ACCESS_HTTPONLY,
|
||||||
samesite=auth_settings.ACCESS_SAME_SITE,
|
samesite=auth_settings.ACCESS_SAME_SITE,
|
||||||
secure=auth_settings.ACCESS_SECURE,
|
secure=auth_settings.ACCESS_SECURE,
|
||||||
expires=auth_settings.ACCESS_TOKEN_EXPIRE_MINUTES * 60,
|
expires=auth_settings.ACCESS_TOKEN_EXPIRE_SECONDS,
|
||||||
)
|
)
|
||||||
return tokens
|
return tokens
|
||||||
else:
|
else:
|
||||||
|
|
@ -75,7 +76,7 @@ async def auto_login(
|
||||||
httponly=auth_settings.ACCESS_HTTPONLY,
|
httponly=auth_settings.ACCESS_HTTPONLY,
|
||||||
samesite=auth_settings.ACCESS_SAME_SITE,
|
samesite=auth_settings.ACCESS_SAME_SITE,
|
||||||
secure=auth_settings.ACCESS_SECURE,
|
secure=auth_settings.ACCESS_SECURE,
|
||||||
expires=auth_settings.ACCESS_TOKEN_EXPIRE_MINUTES * 60,
|
expires=None,
|
||||||
)
|
)
|
||||||
return tokens
|
return tokens
|
||||||
|
|
||||||
|
|
@ -89,7 +90,9 @@ async def auto_login(
|
||||||
|
|
||||||
|
|
||||||
@router.post("/refresh")
|
@router.post("/refresh")
|
||||||
async def refresh_token(request: Request, response: Response, settings_service=Depends(get_settings_service)):
|
async def refresh_token(
|
||||||
|
request: Request, response: Response, settings_service: "SettingsService" = Depends(get_settings_service)
|
||||||
|
):
|
||||||
auth_settings = settings_service.auth_settings
|
auth_settings = settings_service.auth_settings
|
||||||
|
|
||||||
token = request.cookies.get("refresh_token_lf")
|
token = request.cookies.get("refresh_token_lf")
|
||||||
|
|
@ -102,7 +105,7 @@ async def refresh_token(request: Request, response: Response, settings_service=D
|
||||||
httponly=auth_settings.REFRESH_HTTPONLY,
|
httponly=auth_settings.REFRESH_HTTPONLY,
|
||||||
samesite=auth_settings.REFRESH_SAME_SITE,
|
samesite=auth_settings.REFRESH_SAME_SITE,
|
||||||
secure=auth_settings.REFRESH_SECURE,
|
secure=auth_settings.REFRESH_SECURE,
|
||||||
expires=auth_settings.REFRESH_TOKEN_EXPIRE_MINUTES * 60,
|
expires=auth_settings.REFRESH_TOKEN_EXPIRE_SECONDS,
|
||||||
)
|
)
|
||||||
response.set_cookie(
|
response.set_cookie(
|
||||||
"access_token_lf",
|
"access_token_lf",
|
||||||
|
|
@ -110,7 +113,7 @@ async def refresh_token(request: Request, response: Response, settings_service=D
|
||||||
httponly=auth_settings.ACCESS_HTTPONLY,
|
httponly=auth_settings.ACCESS_HTTPONLY,
|
||||||
samesite=auth_settings.ACCESS_SAME_SITE,
|
samesite=auth_settings.ACCESS_SAME_SITE,
|
||||||
secure=auth_settings.ACCESS_SECURE,
|
secure=auth_settings.ACCESS_SECURE,
|
||||||
expires=auth_settings.ACCESS_TOKEN_EXPIRE_MINUTES * 60,
|
expires=auth_settings.ACCESS_TOKEN_EXPIRE_SECONDS,
|
||||||
)
|
)
|
||||||
return tokens
|
return tokens
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -254,13 +254,13 @@ def get_user_id_from_token(token: str) -> UUID:
|
||||||
def create_user_tokens(user_id: UUID, db: Session = Depends(get_session), update_last_login: bool = False) -> dict:
|
def create_user_tokens(user_id: UUID, db: Session = Depends(get_session), update_last_login: bool = False) -> dict:
|
||||||
settings_service = get_settings_service()
|
settings_service = get_settings_service()
|
||||||
|
|
||||||
access_token_expires = timedelta(minutes=settings_service.auth_settings.ACCESS_TOKEN_EXPIRE_MINUTES)
|
access_token_expires = timedelta(seconds=settings_service.auth_settings.ACCESS_TOKEN_EXPIRE_SECONDS)
|
||||||
access_token = create_token(
|
access_token = create_token(
|
||||||
data={"sub": str(user_id)},
|
data={"sub": str(user_id)},
|
||||||
expires_delta=access_token_expires,
|
expires_delta=access_token_expires,
|
||||||
)
|
)
|
||||||
|
|
||||||
refresh_token_expires = timedelta(minutes=settings_service.auth_settings.REFRESH_TOKEN_EXPIRE_MINUTES)
|
refresh_token_expires = timedelta(seconds=settings_service.auth_settings.REFRESH_TOKEN_EXPIRE_SECONDS)
|
||||||
refresh_token = create_token(
|
refresh_token = create_token(
|
||||||
data={"sub": str(user_id), "type": "rf"},
|
data={"sub": str(user_id), "type": "rf"},
|
||||||
expires_delta=refresh_token_expires,
|
expires_delta=refresh_token_expires,
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,7 @@ from passlib.context import CryptContext
|
||||||
from pydantic import Field, SecretStr, validator
|
from pydantic import Field, SecretStr, validator
|
||||||
from pydantic_settings import BaseSettings
|
from pydantic_settings import BaseSettings
|
||||||
|
|
||||||
from langflow.services.settings.constants import (
|
from langflow.services.settings.constants import DEFAULT_SUPERUSER, DEFAULT_SUPERUSER_PASSWORD
|
||||||
DEFAULT_SUPERUSER,
|
|
||||||
DEFAULT_SUPERUSER_PASSWORD,
|
|
||||||
)
|
|
||||||
from langflow.services.settings.utils import read_secret_from_file, write_secret_to_file
|
from langflow.services.settings.utils import read_secret_from_file, write_secret_to_file
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -22,8 +19,8 @@ class AuthSettings(BaseSettings):
|
||||||
frozen=False,
|
frozen=False,
|
||||||
)
|
)
|
||||||
ALGORITHM: str = "HS256"
|
ALGORITHM: str = "HS256"
|
||||||
ACCESS_TOKEN_EXPIRE_MINUTES: int = 60
|
ACCESS_TOKEN_EXPIRE_SECONDS: int = 60 * 60 # 1 hour
|
||||||
REFRESH_TOKEN_EXPIRE_MINUTES: int = 60 * 12 * 7
|
REFRESH_TOKEN_EXPIRE_SECONDS: int = 60 * 60 * 24 * 7 # 7 days
|
||||||
|
|
||||||
# API Key to execute /process endpoint
|
# API Key to execute /process endpoint
|
||||||
API_KEY_ALGORITHM: str = "HS256"
|
API_KEY_ALGORITHM: str = "HS256"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue