Добавить проверку токена прокси, динамические лимиты трафика и Telegram magic-link вход
Прокси теперь может валидировать клиентские JWT и отчитываться о расходе трафика через новые internal-эндпоинты (защищены X-Internal-Secret), лимит на юзера настраивается динамически через admin PATCH без передеплоя прокси. Заодно реализован задокументированный, но не подключённый флоу входа через Telegram-бота (magic-link) для десктоп/мобильного приложения, и seed-эндпоинты теперь возвращают access_token в JSON (не только в cookie) — без этого Tauri-приложение не могло ими пользоваться. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -198,6 +198,12 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Только для стендов без TLS, никогда не для прода!"
|
||||
);
|
||||
}
|
||||
// Общий секрет, которым делятся все прокси-ноды при вызовах internal-эндпоинтов
|
||||
// (`POST /internal/validate`, `POST /internal/usage`) — не пользовательская
|
||||
// авторизация, поэтому отдельный env, не JWT_SECRET.
|
||||
let proxy_internal_secret = std::env::var("PROXY_INTERNAL_SECRET")
|
||||
.expect("КРИТИЧЕСКАЯ ОШИБКА: PROXY_INTERNAL_SECRET не задан в .env!");
|
||||
|
||||
let csrf_allowed_origins: Vec<String> = std::env::var("CSRF_ALLOWED_ORIGINS")
|
||||
.unwrap_or_else(|_| {
|
||||
"https://netrunner-vpn.com,https://account.netrunner-vpn.com".to_string()
|
||||
@@ -253,6 +259,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
cookie_domain,
|
||||
cookie_secure,
|
||||
csrf_allowed_origins,
|
||||
proxy_internal_secret,
|
||||
};
|
||||
|
||||
let app = create_router(state.clone(), &frontend_dir);
|
||||
|
||||
Reference in New Issue
Block a user