| @@ -23,6 +23,9 @@ FILES_ACCESS_TIMEOUT=300 | |||
| # Access token expiration time in minutes | |||
| ACCESS_TOKEN_EXPIRE_MINUTES=60 | |||
| # Refresh token expiration time in days | |||
| REFRESH_TOKEN_EXPIRE_DAYS=30 | |||
| # celery configuration | |||
| CELERY_BROKER_URL=redis://:difyai123456@localhost:6379/1 | |||
| @@ -488,6 +488,11 @@ class AuthConfig(BaseSettings): | |||
| default=60, | |||
| ) | |||
| REFRESH_TOKEN_EXPIRE_DAYS: PositiveFloat = Field( | |||
| description="Expiration time for refresh tokens in days", | |||
| default=30, | |||
| ) | |||
| LOGIN_LOCKOUT_DURATION: PositiveInt = Field( | |||
| description="Time (in seconds) a user must wait before retrying login after exceeding the rate limit.", | |||
| default=86400, | |||
| @@ -65,7 +65,7 @@ class TokenPair(BaseModel): | |||
| REFRESH_TOKEN_PREFIX = "refresh_token:" | |||
| ACCOUNT_REFRESH_TOKEN_PREFIX = "account_refresh_token:" | |||
| REFRESH_TOKEN_EXPIRY = timedelta(days=30) | |||
| REFRESH_TOKEN_EXPIRY = timedelta(days=dify_config.REFRESH_TOKEN_EXPIRE_DAYS) | |||
| class AccountService: | |||
| @@ -105,6 +105,9 @@ FILES_ACCESS_TIMEOUT=300 | |||
| # Access token expiration time in minutes | |||
| ACCESS_TOKEN_EXPIRE_MINUTES=60 | |||
| # Refresh token expiration time in days | |||
| REFRESH_TOKEN_EXPIRE_DAYS=30 | |||
| # The maximum number of active requests for the application, where 0 means unlimited, should be a non-negative integer. | |||
| APP_MAX_ACTIVE_REQUESTS=0 | |||
| APP_MAX_EXECUTION_TIME=1200 | |||
| @@ -27,6 +27,7 @@ x-shared-env: &shared-api-worker-env | |||
| MIGRATION_ENABLED: ${MIGRATION_ENABLED:-true} | |||
| FILES_ACCESS_TIMEOUT: ${FILES_ACCESS_TIMEOUT:-300} | |||
| ACCESS_TOKEN_EXPIRE_MINUTES: ${ACCESS_TOKEN_EXPIRE_MINUTES:-60} | |||
| REFRESH_TOKEN_EXPIRE_DAYS: ${REFRESH_TOKEN_EXPIRE_DAYS:-30} | |||
| APP_MAX_ACTIVE_REQUESTS: ${APP_MAX_ACTIVE_REQUESTS:-0} | |||
| APP_MAX_EXECUTION_TIME: ${APP_MAX_EXECUTION_TIME:-1200} | |||
| DIFY_BIND_ADDRESS: ${DIFY_BIND_ADDRESS:-0.0.0.0} | |||