У меня есть JS-приложение. У него есть собственный каталог, и все, что ему нужно, находится в этом каталоге. Я хочу использовать это приложение в проекте Laravel сейчас. Но он должен быть доступен только для зарегистрированных пользователей. Теперь я не знаю, как это сделать. Я бы использовал cookie-аутентификацию, но как она должна работать? Если приложение JS находится в общедоступном каталоге, оно всегда открыто для доступа и не имеет доступа к токену csrf. Если он находится в ресурсах, я могу предоставить только отдельные файлы для просмотра. Как я могу сделать весь каталог доступным? На данный момент я вижу только один вариант:
веб.php
Route::middleware(['auth:sanctum', 'verified'])->get('/jsapp', function () {
return view("jsapp");
})->name('jsapp');
Route::middleware(['auth:sanctum', 'verified'])->get('/jsapp/{path?}', function (Request $req, $path) {
return serve_file_somehow("path_to_project_root", $path);
});
Это Js-приложение регулярно опрашивает сервер, чтобы проверить, вошел ли пользователь в систему. Мой вопрос, как реализовать эту функцию serve_file_somehow
? Или, может быть, есть другие решения для этой ситуации? Есть ли какая-то магия .htaccess, которую можно реализовать?
Структура каталогов Js-приложения:
resources/views/jsapp
-- index.html
<html>
<link href="css/styles.css" />
<script src="js/index.js />
</html>
-- css/styles.css
-- js/index.js
-- images/img1.jpg
Что меня беспокоит, так это то, что вы переопределяете функции веб-сервера через PHP/Laravel.