从 Laravel 中的目录为授权用户提供静态 JS-App
Serve static JS-App from directory in Laravel for authorized users
我有一个 Js 应用程序。它有自己的目录,它需要的一切都在该目录中。我现在想在 Laravel 项目中使用这个应用程序。但它应该只对登录用户可用。现在我不知道该怎么做。我会使用 cookie 身份验证,但它应该如何工作?如果 JS 应用程序在 public 目录中,它始终可以访问,并且无法访问 csrf 令牌。如果它在资源中,我只能提供单个文件。如何使整个目录可用?目前我只看到一种可能性:
web.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-App 定期轮询服务器以检查用户是否仍处于登录状态 in.My 问题如何实现此 serve_file_somehow
功能?或者对于这种情况,也许还有其他解决方案?是否有任何类型的 .htaccess -magic 可以实现?
Js-App目录结构:
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重新实现了一个网络服务器的功能。
您应该通过 blade 模板提供 index.html 文件内容
index.blade.php
<html>
<meta name="csrf-token" content="{{ csrf_token() }}">
<link href="/css/styles.css" />
<script src="/js/index.js />
</html>
具有受保护的路线:
Route::middleware(['auth:sanctum', 'verified'])->get('/jsapp', function () {
return view("jsapp.index");
})->name('jsapp');
并将所有 javascript 和 css 文件放入 public
目录。
也可以通过 XSRF-TOKEN
cookie 获取 CSRF 令牌,Laravel
cookie 会自动设置。如果您无权访问资源目录,或者希望将所有 JS 应用程序放在一个目录中。那你也可以用这个方法。
<script>
$.ajaxSetup({
headers: {
'X-XSRF-TOKEN': $.cookie('XSRF-TOKEN')
}
});
</script>
我有一个 Js 应用程序。它有自己的目录,它需要的一切都在该目录中。我现在想在 Laravel 项目中使用这个应用程序。但它应该只对登录用户可用。现在我不知道该怎么做。我会使用 cookie 身份验证,但它应该如何工作?如果 JS 应用程序在 public 目录中,它始终可以访问,并且无法访问 csrf 令牌。如果它在资源中,我只能提供单个文件。如何使整个目录可用?目前我只看到一种可能性:
web.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-App 定期轮询服务器以检查用户是否仍处于登录状态 in.My 问题如何实现此 serve_file_somehow
功能?或者对于这种情况,也许还有其他解决方案?是否有任何类型的 .htaccess -magic 可以实现?
Js-App目录结构:
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重新实现了一个网络服务器的功能。
您应该通过 blade 模板提供 index.html 文件内容
index.blade.php
<html>
<meta name="csrf-token" content="{{ csrf_token() }}">
<link href="/css/styles.css" />
<script src="/js/index.js />
</html>
具有受保护的路线:
Route::middleware(['auth:sanctum', 'verified'])->get('/jsapp', function () {
return view("jsapp.index");
})->name('jsapp');
并将所有 javascript 和 css 文件放入 public
目录。
也可以通过 XSRF-TOKEN
cookie 获取 CSRF 令牌,Laravel
cookie 会自动设置。如果您无权访问资源目录,或者希望将所有 JS 应用程序放在一个目录中。那你也可以用这个方法。
<script>
$.ajaxSetup({
headers: {
'X-XSRF-TOKEN': $.cookie('XSRF-TOKEN')
}
});
</script>